将Metro Studio 2 Vector XAML与MahApps MetroCircleButton相结合

时间:2013-03-15 19:19:42

标签: xaml button microsoft-metro geometry

我目前正在开发一个使用MahApps作为WPF扩展来创建Win8 Metro风格的应用程序。

MahApps为按钮提供MetroCircleButton样式,但是文档在如何获取按钮中显示的自己的矢量图形方面有点简短。我正在使用Metro Studio 2为我的应用设计按钮图标,它以下列形式输出XAML资源代码:

<Viewbox x:Key="xx">
    <Grid Width="48" Height="48" Visibility="Visible">
        <Grid Visibility="Visible">
            <Rectangle Fill="#FF000000" Visibility="Visible" />
            <Ellipse Fill="#FF000000" Visibility="Collapsed" />
            <Path Data="..." Stretch="Fill" Fill="#FF000000" Visibility="Collapsed" />
        </Grid>
        <Path Data=".." Stretch="Uniform" Fill="#FFFFFFFF" Width="26" Height="26" Margin="0,0,0,0" />
    </Grid>
</Viewbox>
到目前为止一切顺利。但MahApps建议使用VisualBrush来显示自己的矢量图形:

<Rectangle Fill="Black">
<Rectangle.OpacityMask>
    <VisualBrush Visual="{StaticResource appbar_add}" Stretch="Fill" />
</Rectangle.OpacityMask>

我查看了他们的回购,看看他们使用的是什么格式,它有点不同:

<Canvas Width="48.0067" Height="48.0067" Clip="F1 M 0,0L 48.0067,0L 48.0067,48.0067L 0,48.0067L 0,0" x:Key="appbar_alien">
    <Path Width="22.005" Height="16.0048" Canvas.Left="12.9999" Canvas.Top="16.9998" Stretch="Fill" Fill="{DynamicResource BlackBrush}" Data="..." />
</Canvas>

现在我的问题是:我可以以某种方式使用Metro Studio为我提供的格式在按钮中显示我的图标,保持圆形按钮的鼠标悬停动画,而无需手动将所有按钮转换为正确的格式(并且松动数据可能)?

此致 Xaser

1 个答案:

答案 0 :(得分:0)

实际上这很简单。只需删除MetroStudio中符号周围的圆圈,然后将StaticResource设置为按钮的“内容”。完成:))

此致 Xaser