C#完成win10 uwp 右擊浮出窗在點擊地位。本站提示廣大學習愛好者:(C#完成win10 uwp 右擊浮出窗在點擊地位)文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成win10 uwp 右擊浮出窗在點擊地位正文
本文重要讓MenuFlyout湧現在我們右擊地位。
我們普通應用的MenuFlyout寫在前台,寫在Button外面,然則能夠我們的MenuFlyout顯示的地位和我們想要的紛歧樣。
經由過程應用後台寫ShowAt的辦法,我們可以經由過程e.GetPosition取得鼠標點擊地位,須要對函數傳入絕對的元素,這個元素普通可以用我們點擊應用的元素,也能夠應用我們的最外層Grid,如許我們便可以取得了鼠標地位,也便可以顯示我們的MenuFlyout在點擊地位。
我們建一個ListView,然後綁定後台,在我們ListView要右擊顯示我們的浮出,請求我們的浮出在我們點擊地位。
MenuFlyout可以在後台寫,固然寫在前台也能夠。
我們這寫在後台,我們可以選擇Placement 顯示在我們元素的地位,但這不是我們鼠標點擊的地位,要顯示我們鼠標點擊的地位,其實也很簡略。我們可以從e.GetPosition(sender as UIElement)取得鼠標地位,把這個給MenuFlyout我們的浮出顯示在我們鼠標點擊地位
<ListView ItemsSource="{x:Bind View.Str}"> <ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="VerticalContentAlignment" Value="Center"></Setter> </Style> </ListView.ItemContainerStyle> <ListView.ItemTemplate> <DataTemplate> <Grid Background="#FFda2a5c" RightTapped="GridColection_OnRightTapped"> <TextBlock Text="{Binding}"></TextBlock> </Grid> </DataTemplate> </ListView.ItemTemplate> </ListView>
後台寫
private void GridColection_OnRightTapped(object sender, RightTappedRoutedEventArgs e) { MenuFlyout myFlyout = new MenuFlyout(); MenuFlyoutItem firstItem = new MenuFlyoutItem { Text = "OneIt" }; MenuFlyoutItem secondItem = new MenuFlyoutItem { Text = "TwoIt" }; myFlyout.Items.Add(firstItem); myFlyout.Items.Add(secondItem); //if you only want to show in left or buttom //myFlyout.Placement = FlyoutPlacementMode.Left; FrameworkElement senderElement = sender as FrameworkElement; //the code can show the flyout in your mouse click myFlyout.ShowAt(sender as UIElement, e.GetPosition(sender as UIElement)); }
以上所述是小編給年夜家引見的C#完成win10 uwp 右擊浮出窗在點擊地位,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!