WPF按钮的内容 - 无法放置除文本之外的任何内容

时间:2009-12-27 17:04:30

标签: wpf xaml graphics button

我设计了一个漂亮的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>

2 个答案:

答案 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 ......