Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF按钮的内容-除了文本之外,无法放置任何内容_Wpf_Xaml_Graphics_Button - Fatal编程技术网

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

WPF按钮的内容-除了文本之外,无法放置任何内容,wpf,xaml,graphics,button,Wpf,Xaml,Graphics,Button,我设计了一个漂亮的停止图形,带有红色背景和渐变,以及表情设计中的所有元素——就像它会出现在真正的录音机上一样 我将其导出为XAML WPF资源字典,并获得了XAML代码 我希望此图形与文本“停止”一起出现在按钮内 如果我直接将XAML粘贴到button标记中,则它不起作用 我尝试过搜索,但所有的搜索结果似乎都在谈论一种叫做按钮模板的东西,它们正在设置样式和内容。那不是我想要的 难道不是所有你在Expression design中设计的东西都不在一个按钮内吗? 如何将任何设计XAML作为按钮的内容

我设计了一个漂亮的停止图形,带有红色背景和渐变,以及表情设计中的所有元素——就像它会出现在真正的录音机上一样

我将其导出为XAML WPF资源字典,并获得了XAML代码

我希望此图形与文本“停止”一起出现在按钮内

如果我直接将XAML粘贴到button标记中,则它不起作用

我尝试过搜索,但所有的搜索结果似乎都在谈论一种叫做按钮模板的东西,它们正在设置样式和内容。那不是我想要的

难道不是所有你在Expression design中设计的东西都不在一个按钮内吗? 如何将任何设计XAML作为按钮的内容

编辑

这是我从导出为XAML得到的。这个可以放在按钮标签里吗

<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>


.

您已经定义了画笔。现在你需要一些东西来画画。尝试使用:

 <Button Background="{StaticResource Layer_1}" Content="STOP"> />
/>

您可能需要编辑按钮模板以更改其他按钮状态,如按下、鼠标悬停等。

您已经定义了笔刷。现在你需要一些东西来画画。尝试使用:

 <Button Background="{StaticResource Layer_1}" Content="STOP"> />
/>

您可能需要编辑按钮模板以更改其他按钮状态,如按下、鼠标悬停等。

与其使用绘图画笔,不如使用矩形框?表达式设计很棒,但它导出的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…

而不是使用绘图画笔,使用矩形如何?表达式设计很棒,但它导出的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…

等等,XAML只能作为背景吗?我已经有了另一个渐变作为背景。这个可以放在站点旁边吗?不,这只是一个快速的破解,这样你就可以看到你的画笔在运行。等等,XAML只能作为背景吗?我已经有了另一个渐变作为背景。这个可以放在停车位旁边吗?不,这只是一个快速的破解,这样你就可以看到你的画笔在动。我想不管导出的是什么表达式,都是可能的。我不知道你可以用矩形做同样的事情。我想我应该详细研究XAML。谢谢:)这应该也适用于您导出的XAML。用你的DrawingBrush替换Brent例子中的LinearGradientBrush。我想不管导出的表达式是什么,都是可能的。我不知道你可以用矩形做同样的事情。我想我应该详细研究XAML。谢谢:)这应该也适用于您导出的XAML。只需将Brent示例中的LinearGradientBrush替换为DrawingBrush。