我有以下 XAML:
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="20"/>
</Grid.ColumnDefinitions>
<local:DropDownButton
HorizontalAlignment="Right"
Grid.Column="2"
Width="18"
Style="{StaticResource OrangeButton}"
ContextMenuClosing="colorPallete_ContextMenuClosing"
x:Name="btnSelectColor">
<Polygon Points="0,0,5,4,10,0" Fill="Black"/>
<local:DropDownButton.DropDown>
<ContextMenu StaysOpen="True" Name="colorPallete" ContextMenuClosing="colorPallete_ContextMenuClosing">
<MenuItem StaysOpenOnClick="True" OverridesDefaultStyle="True" ContextMenuClosing="colorPallete_ContextMenuClosing">
<MenuItem.Header>
<local:ColorPickerPopup x:Name="colorPicker" ContextMenuClosing="colorPallete_ContextMenuClosing"/>
</MenuItem.Header>
</MenuItem>
</ContextMenu>
</local:DropDownButton.DropDown>
</local:DropDownButton>
<Rectangle Width="17.5" Stroke="Black" Margin="0"
Fill="{DynamicResource CheckerBrush}"/>
<Rectangle Width="17.5" Margin="0" Name="rtcColorPreview" />
<TextBox Margin="2,0,0,0" Grid.Column="1"
Width="100" BorderThickness="0"
Text="{Binding ElementName=colorPicker, Mode=TwoWay, Path=SelectedColorName}"/>
</Grid>
当标记为 colrPallete 的 ContextMenu 关闭时,不会调用事件处理程序 colorPallete_ContextMenuClosing。我似乎无法弄清楚缺少什么。
请帮忙! TIA。
Per the MSDN 文档...
ContextMenu 本身是一个
FrameworkElement 派生类,但是
ContextMenuClosing 事件不会
直接由上下文菜单引发。
相反,该事件是从
“拥有”上下文菜单的元素
作为财产,仅在以下情况下提出:
用户尝试关闭上下文
用户界面中的菜单。
您需要调整您的代码,以便仅在DropDownButton
正如你所做的那样。如果有嵌套ContextMenu
然后是嵌套的ContextMenu
显然会引发该事件。
<local:DropDownButton ContextMenuClosing="colorPallete_ContextMenuClosing">
...
</local:DropDownButton>
Using a Button
它看起来像这样......
<Button ContextMenuClosing="ContextMenu_ContextMenuClosing">
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header="Go"/>
</ContextMenu>
</Button.ContextMenu>
</Button>
..当ContextMenu
含有MenuItem
关闭;将引发事件并调用处理程序。
不确定是什么DropDownButton
控制你正在使用的所以我不能评论什么DropDown
财产是什么以及您如何嵌套您的ContextMenu
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)