2016-02-27 10 views
2

Я пишу приложение WPF, используя набор инструментов UI MahApps Metro UI.Использование значков MahApps с ContextMenu

http://mahapps.com/guides/quick-start.html

Из руководства на их сайте, я в основном закончил свое заявление, и оно выглядит гладким. Единственная проблема, с которой я сталкиваюсь, - это то, что я не смог узнать, как использовать пакеты значков, которые они предоставляют в качестве значков контекстного меню.

enter image description here

Вот визуальный пример того, что я пытаюсь сделать. В то время как я смог получить исходный пункт меню «Windows», чтобы отобразить его значок, я не могу сделать то же самое для контекстных меню. Есть ли что-то, что я делаю неправильно или способ обойти это?

Вот мой .xaml:

<Menu IsMainMenu="True"> 
    <MenuItem Header="_Windows" ContextMenuService.IsEnabled="False" Click="WindowsMenuItem_Click"> 
     <MenuItem.Icon> 
      <Rectangle Width="15" Height="15" Fill="{Binding RelativeSource={RelativeSource AncestorType=MenuItem}, Path=Foreground}"> 
       <Rectangle.OpacityMask> 
        <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_window}" /> 
       </Rectangle.OpacityMask> 
      </Rectangle> 
     </MenuItem.Icon> 
     <MenuItem.ContextMenu> 
      <ContextMenu> 
       <MenuItem Header="_Welcome Module"> 
        <MenuItem.Icon> 
         <Rectangle Width="15" Height="15" Fill="{Binding RelativeSource={RelativeSource AncestorType=MenuItem}, Path=Foreground}"> 
          <Rectangle.OpacityMask> 
           <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_home}" /> 
          </Rectangle.OpacityMask> 
         </Rectangle> 
        </MenuItem.Icon> 
       </MenuItem> 
       <MenuItem Header="_Schedule Module"> 
        <MenuItem.Icon> 
         <Rectangle Width="15" Height="15" Fill="{Binding RelativeSource={RelativeSource AncestorType=MenuItem}, Path=Foreground}"> 
          <Rectangle.OpacityMask> 
           <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_calendar}" /> 
          </Rectangle.OpacityMask> 
         </Rectangle> 
        </MenuItem.Icon> 
       </MenuItem> 
       <MenuItem Header="_Performance Module"> 
        <MenuItem.Icon> 
         <Rectangle Width="15" Height="15" Fill="{Binding RelativeSource={RelativeSource AncestorType=MenuItem}, Path=Foreground}"> 
          <Rectangle.OpacityMask> 
           <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_table}" /> 
          </Rectangle.OpacityMask> 
         </Rectangle> 
        </MenuItem.Icon> 
       </MenuItem> 
       <MenuItem Header="_Audit Module"> 
        <MenuItem.Icon> 
         <Rectangle Width="15" Height="15" Fill="{Binding RelativeSource={RelativeSource AncestorType=MenuItem}, Path=Foreground}"> 
          <Rectangle.OpacityMask> 
           <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_graph_line}" /> 
          </Rectangle.OpacityMask> 
         </Rectangle> 
        </MenuItem.Icon> 
       </MenuItem> 
      </ContextMenu> 
     </MenuItem.ContextMenu> 
    </MenuItem> 
</Menu> 

И мой .xaml.cs:

public partial class MainWindow 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     DataContext = new MainWindowViewModel(); 
    } 

    private void WindowsMenuItem_Click(object sender, RoutedEventArgs e) 
    { 
     (sender as MenuItem).ContextMenu.IsEnabled = true; 
     (sender as MenuItem).ContextMenu.PlacementTarget = (sender as MenuItem); 
     (sender as MenuItem).ContextMenu.Placement = System.Windows.Controls.Primitives.PlacementMode.Bottom; 
     (sender as MenuItem).ContextMenu.IsOpen = true; 
    } 
} 

ответ

5

Я получил его на работу в моем приложении с помощью:

<Window.Resources> 
    <ResourceDictionary> 
     <VisualBrush x:Key="RunAllTestsIcon" Visual="{StaticResource appbar_list_check}"/> 
    </ResourceDictionary> 
</Window.Resources> 
... 
<ContextMenu StaysOpen="True"> 
    <MenuItem Header="RunAllTests"> 
     <MenuItem.Icon> 
     <Rectangle Width="22" Height="22" Fill="{StaticResource RunAllTestsIcon}"/> 
     </MenuItem.Icon> 
    </MenuItem> 
</ContextMenu> 

 Смежные вопросы

  • Нет связанных вопросов^_^