禁用使用applicationcommands的WPF notifyicon上下文菜单

时间:2015-06-21 10:44:40

标签: wpf data-binding contextmenu notifyicon

我有一个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>

0 个答案:

没有答案