wpf - 禁用整个上下文菜单

标签 wpf contextmenu

我知道有一种方法可以使用 ContextMenuOpening 阻止或现在显示上下文菜单事件。
但我还是想显示上下文菜单,只是禁用其中的所有内容,有没有办法做到这一点?
如何同时禁用所有菜单项?

<DataTemplate x:Key="ItemDataTemplate">
    <Grid Background="Transparent">
        <Grid.ContextMenu>
            <ContextMenu>
                <MenuItem Header="New" Click="New_Click" />
                <Separator />
                <MenuItem Header="Duplicate" Click="Duplicate_Click"/>
                <MenuItem Header="Delete" Click="Delete_Click"  />
                <MenuItem Header="Rename" Click="Rename_Click" />
                <Separator />
                <MenuItem Header="Export..." Click="Export_Click" />
                <MenuItem Header="Print..."
                          Command="ApplicationCommands.Print"
                          InputGestureText="" />
                <Separator />
                <MenuItem Header="Properties" Click="Properties_Click" />
            </ContextMenu>
        </Grid.ContextMenu>
        <StackPanel Orientation="Horizontal"
                    Margin="0,0,10,0"
                    HorizontalAlignment="Stretch"
                    Background="Transparent"
                    IsHitTestVisible="False">    
        </StackPanel>
    </Grid>    
</DataTemplate>

最佳答案

<Style x:Key="z3r0_Style_TextBox_Default" BasedOn="{x:Null}"
    TargetType="{x:Type TextBox}">
<Setter Property="FontSize" Value="11"/>
<Setter Property="Background" Value="{StaticResource z3r0_SolidColorBrush_DarkerGray}"/>
<Setter Property="BorderBrush" Value="{x:Null}"/>
<Setter Property="FontFamily" Value="Consolas"/>
<Setter Property="Foreground" Value="{StaticResource z3r0_SolidColorBrush_Green}"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="MinWidth" Value="10"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="ContextMenu">                
    <Setter.Value>
        <ContextMenu IsEnabled="False" Visibility="Hidden">
        </ContextMenu>
    </Setter.Value>
</Setter>
对我来说,设置 IsEnabled to False 仍然导致一个小的空上下文菜单可见。更改其可见性属性后,它确实被禁用了。

关于wpf - 禁用整个上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8099586/

相关文章:

.net - 调整大小后如何使用 Expander 保持 WPF 窗口的大小适合内容

c# - 创建一个 Observable<T> 类 : overloading = operator?

c# - 在 WPF 应用程序中使用 C# 调度程序

c# - 为什么在 4 月份从一体化代码框架中删除了所有 C# Shell 扩展示例?

datagrid - 使用 MVVM 的 DataGrid 中的 ContextMenu 绑定(bind)源

ios - WatchKit 上下文菜单切换界面 Controller

wpf - WPF DataGrid 的替代方案,它公开控件,就好像它们被放置在 Grid 控件上一样

c# - 将事件或命令分配给 ResourceDictionary 中的 DataTemplate

java - Android ContextMenu 更改按钮文本

Eclipse 插件项目资源管理器上下文菜单