将ContextMenu放入WPF样式中
本文关键字:样式 WPF 放入 ContextMenu | 更新日期: 2023-09-27 17:50:24
我想把ContextMenu在样式下面,这样它可以被所有的文本框共享。
<Grid.Resources>
<Style x:Key="Cell" TargetType="TextBox">
<Setter Property="Margin" Value="0"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="BorderThickness" Value="0.2"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="MinHeight" Value="30"/>
<Setter Property="MinWidth" Value="70"/>
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Level1" Click="SubLevel1_Click_1"/>
<MenuItem Header="SubLevel1"/>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>
这段代码工作得很好,直到我添加Click事件。当添加click事件时,它会生成,但在执行时抛出以下异常:" Set connectionId抛出异常。"行号'21',行位'34'。
我在这里做错了什么吗?不确定是什么原因造成的,但你可以很容易地解决这个问题,把ContextMenu
作为一个单独的资源:
<ContextMenu x:Key="ContextMenu">
<MenuItem Header="Level1" Click="SubLevel1_Click_1"/>
<MenuItem Header="SubLevel1"/>
</ContextMenu>
<Style TargetType="TextBox">
<Setter Property="ContextMenu" Value="{StaticResource ContextMenu}"/>
</Style>