双击 TreeViewItem 在 MainWindow 的 Grid 中显示 UserControl

Posted

技术标签:

【中文标题】双击 TreeViewItem 在 MainWindow 的 Grid 中显示 UserControl【英文标题】:Double click TreeViewItem to show UserControl in MainWindow's Grid 【发布时间】:2022-01-20 02:17:29 【问题描述】:

我想在 MainWindow 的 Grid 中显示一个 UserControl,但双击时不起作用,它不会显示 UserControl。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="200" MaxWidth="400" MinWidth="0"/>
        <ColumnDefinition Width="0"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Grid Grid.Column="0" Margin="0,0,0,0">
        <TreeView Background="Transparent">
            <TreeViewItem Header="Purchase" IsExpanded="False">
                <TreeViewItem Header="Material" x:Name="TreeViewItem_Material" MouseDoubleClick="TreeViewItem_Material_MouseDoubleClick"></TreeViewItem>
            </TreeViewItem>
        </TreeView>
    </Grid>
    <GridSplitter Margin="0,0" Width="5"/>
    <Grid Grid.Column="2" x:Name="MainGrid" Margin="0,0,0,0"></Grid>
</Grid>
private void TreeViewItem_Material_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    
            UserControl material = new Material(); //UserControl: Material.xaml
            MainGrid.Children.Add(material);
    

谢谢。

编辑----- 我的代码运行良好,只是 UserControl Layout 问题导致没有显示。

【问题讨论】:

【参考方案1】:

您的代码在我的环境中运行良好,如下所示。

双击节点Material时显示Hello, Material

检查Material 的可见性或使用简单的UserControl 可能会有所帮助。

【讨论】:

谢谢兄弟,我发现是UserControl边距问题导致它不显示。谢谢你的回复你:D

以上是关于双击 TreeViewItem 在 MainWindow 的 Grid 中显示 UserControl的主要内容,如果未能解决你的问题,请参考以下文章

WPF 解决多个TreeViewItem同时触发某事件的简单方法

WPF 解决多个TreeViewItem同时触发某事件的简单方法

WPF 解决多个TreeViewItem同时触发某事件的简单方法

如何实现树形控件可编辑状态

C# WPF TreeViewItem MouseDoubleClick 事件在 TreeViewItem 与 TreeViewItem.Header

如何在 wpf 中的 treeviewitem 中访问 treeviewitem?