當用戶右鍵單擊節點時,我試圖在 WinUI 3 TreeView 上顯示 MenuFlyout,并允許他們選擇適用于該節點的操作。單節點選擇生效,右鍵不會自動選擇節點。
經過搜索,我遇到了這個答案,但它不適用于 WinUI 3,因為WinUI 3 TreeView 控制元件沒有GetNodeAt方法,我看不到如何從某個點獲取 TreeViewNode。
有什么建議么?謝謝。
uj5u.com熱心網友回復:
你可以這樣做:
主視窗.xaml
<Grid>
<Grid.Resources>
<CommandBarFlyout
x:Name="TestCommanBarFlyout"
Placement="Right">
<AppBarButton Icon="Copy" />
<AppBarButton Icon="Delete" />
</CommandBarFlyout>
</Grid.Resources>
<TreeView ItemsSource="{x:Bind Items}">
<TreeView.ItemTemplate>
<DataTemplate x:DataType="x:String">
<TreeViewItem
Content="{x:Bind}"
ContextRequested="TreeViewItem_ContextRequested" />
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
主視窗.xaml.cs
public ObservableCollection<string> Items { get; } = new() { "A", "B", "C" };
private void TreeViewItem_ContextRequested(UIElement sender, ContextRequestedEventArgs args)
{
if (sender is TreeViewItem item)
{
item.IsSelected = true;
TestCommanBarFlyout.ShowAt(
item,
new FlyoutShowOptions()
{
ShowMode = FlyoutShowMode.Standard
});
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520480.html
