我设计了一个漂亮的STOP图形,其中包含红色bg和渐变以及Expression Design中的所有内容 - 就像它会在真正的taperecorder上看一样。
我将其导出为XAML WPF资源字典并获得了XAML代码。
我希望此图形与文本“STOP”一起出现在按钮内。
如果我直接将XAML粘贴到按钮标记内,它就无法正常工作。
我尝试过搜索,但所有搜索结果似乎都在谈论一个名为按钮模板的东西,他们正在设置样式和内容。那不是我想要的。
是不是,你在Expression Design中设计的所有内容都不会进入按钮内? 如何将任何设计XAML作为按钮的内容?
修改
这是我从XAML导出时得到的。这可以放在Button标签里吗?
<DrawingBrush x:Key="Layer_1" Stretch="Uniform">
<DrawingBrush.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Geometry="F1 M 2.72,0.160004L 16.0533,0.160004C 17.4672,0.160004 18.6133,1.30615 18.6133,2.72L 18.6133,12.96C 18.6133,14.3739 17.4672,15.52 16.0533,15.52L 2.72,15.52C 1.30615,15.52 0.16,14.3739 0.16,12.96L 0.16,2.72C 0.16,1.30615 1.30615,0.160004 2.72,0.160004 Z ">
<GeometryDrawing.Pen>
<Pen Thickness="0.32" LineJoin="Round" Brush="#FFFFFFFF"/>
</GeometryDrawing.Pen>
<GeometryDrawing.Brush>
<LinearGradientBrush StartPoint="0.5,-0.111111" EndPoint="0.5,1.11111">
<LinearGradientBrush.GradientStops>
<GradientStop Color="#FFDDB8B8" Offset="0.00465116"/>
<GradientStop Color="#FFA60E0E" Offset="0.986046"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</GeometryDrawing.Brush>
</GeometryDrawing>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingBrush.Drawing>
答案 0 :(得分:2)
您已定义了画笔。现在你需要画一些东西。尝试使用:
<Button Background="{StaticResource Layer_1}" Content="STOP"> />
您可能需要编辑按钮模板以更改其他按钮状态,例如按下,MouseOver等。
答案 1 :(得分:2)
而不是使用DrawingBrush,如何使用Rectange?表达式设计很棒,但它出口的XAML对我的口味来说有点太多了。我建议添加一个矩形作为资源,然后将按钮的内容设置为资源,如下所示:
<Grid>
<Grid.Resources>
<Rectangle x:Key="Stop" RadiusX="3" RadiusY="3" Width="20" Height="20">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0.5,1" EndPoint="0.5,0">
<LinearGradientBrush.GradientStops>
<GradientStop Color="#FFAD2323" Offset="0"/>
<GradientStop Color="#FFD6A0A0" Offset="1"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
</Grid.Resources>
<Button Width="100" Height="30" Content="{StaticResource Stop}"/>
</Grid>
当然你也可以将你的设计导出到.png ......