我有一个WPF PRISM应用程序,其主窗口基于ribbinwindow。当我右键单击icontray中的图标时,退出菜单被禁用。
有人可以告诉我如何启用它并适当地处理关闭事件。
我正在显示主窗口的整个代码,但它是让我头疼的通知图标的上下文菜单。我通过尝试谷歌修复此问题找到了placementTarget命令目标绑定,但这似乎不起作用。
带状按钮的绑定方式与上下文菜单的工作方式相同。
我更喜欢保持命令绑定而不处理这种情况下的事件,因为我使用的是MVVM。关闭可以通过简单地调用事件并在该事件中调用close而不会出现关注点分离来处理,但我也将使用其他命令。所以请不要发生任何事件。
<ribbon:RibbonWindow x:Class="_2Focus.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ribbon="http://schemas.microsoft.com/winfx/2006/xaml/presentation/ribbon"
xmlns:prism="http://www.codeplex.com/prism"
xmlns:tb="http://www.hardcodet.net/taskbar"
Title="2Focus" Icon="/2Focus;component/favicon.ico"
x:Name="Mainwindow"
Height="500" Width="900">
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition x:Name="RibbonRow" Height="Auto"/>
<RowDefinition x:Name="ClientRow" Height="*"/>
</Grid.RowDefinitions>
<tb:TaskbarIcon IconSource="/2Focus;component/favicon.ico" ToolTipText="2 Focus" >
<tb:TaskbarIcon.ContextMenu>
<ContextMenu>
<MenuItem Header="Exit" Command="ApplicationCommands.Close"
CommandTarget="{Binding Path=PlacementTarget, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}}">
<MenuItem.Icon>
<Image Source="Images/exit.png" SnapsToDevicePixels="True" RenderOptions.BitmapScalingMode="NearestNeighbor"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Second Menu Item" />
</ContextMenu>
</tb:TaskbarIcon.ContextMenu>
</tb:TaskbarIcon>
<ribbon:Ribbon x:Name="Ribbon" prism:RegionManager.RegionName="RibbonRegion" SelectionChanged="Ribbon_SelectionChanged" >
<ribbon:Ribbon.QuickAccessToolBar>
<ribbon:RibbonQuickAccessToolBar Name="ribbonQuickAccessToolBar" AllowDrop="True" />
</ribbon:Ribbon.QuickAccessToolBar>
<ribbon:Ribbon.ApplicationMenu>
<ribbon:RibbonApplicationMenu SmallImageSource="/2Focus;component/favicon.ico">
<ribbon:RibbonApplicationMenu.FooterPaneContent>
<DockPanel LastChildFill="False">
<ribbon:RibbonButton DockPanel.Dock="Right" Margin="2" Command="ApplicationCommands.Close" SmallImageSource="Images/exit.png" />
</DockPanel>
</ribbon:RibbonApplicationMenu.FooterPaneContent>
</ribbon:RibbonApplicationMenu>
</ribbon:Ribbon.ApplicationMenu>
</ribbon:Ribbon>
<Grid x:Name="ClientGrid" Grid.Row="1">
<ContentControl prism:RegionManager.RegionName="ClientRegion" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</Grid>
</Grid>