如何在Ribbon中使用XAML图标?

时间:2015-03-11 23:27:22

标签: wpf xaml icons

我有一个当前配置如此的功能区来显示图标:

<Style x:Key="PrintMenuButton" TargetType="rib:RibbonApplicationSplitMenuItem">
    <Setter Property="ImageSource" Value="/styles/metro/print.png"/>
</Style>

我想切换到XAML(或SVG)矢量图标。我得到了Syncfusion Metro Studio,它以下列格式吐出图标:

<Viewbox xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
 <Grid>
  <Grid Name="backgroundGrid" Width="256" Height="256" Visibility="Collapsed" />
  <Path Data="M19.833,0L32.5,0 32.5,19.833999 52.334,19.833999 52.334,32.500999 32.5,32.500999 32.5,52.333 19.833,52.333 19.833,32.500999 0,32.500999 0,19.833999 19.833,19.833999z" Stretch="Uniform" Fill="#FF228B22" Width="138" Height="138" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5">
<Path.RenderTransform><TransformGroup>
<TransformGroup.Children>
<RotateTransform Angle="0" />
<ScaleTransform ScaleX="1" ScaleY="1" />
</TransformGroup.Children>
</TransformGroup>
</Path.RenderTransform>
</Path>
</Grid>
</Viewbox>

然而,由于我在XAML方面的技能非常有限,我很难将它们混合在一起工作。

我在ResourceDictionary中添加了这个图标(Viewbox的所有内容)并添加了x:Key =&#34; MyLovelyIcon&#34;,但它不会工作,我不确定原因。

如果有人能告诉我如何将这些东西粘在一起,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

经过一番探索,我得到了我想要的东西:

<Style x:Key="PrintMenuButton" TargetType="rib:RibbonApplicationSplitMenuItem">
    <Setter Property="ImageSource" Value="{StaticResource XamlIcon_Misc_Print}"/>
</Style>

<DrawingImage x:Key="XamlIcon_Misc_Print">
    <DrawingImage.Drawing>
        <GeometryDrawing Brush="#FF000000" Geometry="M6.6669998,lots of digits"/>
    </DrawingImage.Drawing>
</DrawingImage>

所以基本上我取消了Path并将数据移动到Geometry对象。如果有人想评论何时使用一个,何时另一个以及它们如何不同,或者备用MSDN的链接,那就太棒了。感谢。