Wpf 在XAML中更改按钮背景?
如何将下面的XAML代码集成到buttons背景中。我已经尝试了很多方法,但我正在努力让它工作。PS我是XAML的新手Wpf 在XAML中更改按钮背景?,wpf,silverlight,xaml,Wpf,Silverlight,Xaml,如何将下面的XAML代码集成到buttons背景中。我已经尝试了很多方法,但我正在努力让它工作。PS我是XAML的新手 <Viewbox Width="55.247" Height="55.247" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Canvas Wid
<Viewbox Width="55.247" Height="55.247"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas Width="55.247" Height="55.247">
<Canvas>
<!-- button/circle -->
<Path StrokeThickness="1.0" Stroke="#ff335284" StrokeMiterLimit="1.0" Data="F1 M 54.747,27.624 C 54.747,42.603 42.603,54.747 27.624,54.747 C 12.644,54.747 0.500,42.603 0.500,27.624 C 0.500,12.644 12.644,0.500 27.624,0.500 C 42.603,0.500 54.747,12.644 54.747,27.624 Z">
<Path.Fill>
<RadialGradientBrush MappingMode="Absolute" GradientOrigin="392.717,-251.469" Center="392.717,-251.469" RadiusX="27.123" RadiusY="27.123">
<RadialGradientBrush.GradientStops>
<GradientStop Offset="0.00" Color="#ff00aae4"/>
<GradientStop Offset="1.00" Color="#ff2463a7"/>
</RadialGradientBrush.GradientStops>
<RadialGradientBrush.Transform>
<MatrixTransform Matrix="1.000,0.000,-0.000,-1.000,-365.093,-223.845" />
</RadialGradientBrush.Transform>
</RadialGradientBrush>
</Path.Fill>
</Path>
</Canvas>
</Canvas>
</Viewbox>
您有多种选择来实现这一点。如果你真的只是想把你的路径放在一个按钮上,你可以像这样用最少的努力来完成它
<Button Width="75" Height="75">
<!-- Embed our elements in a grid since Content can be set only once -->
<Grid>
<!-- Your Path -->
<Path StrokeThickness="1.0" Stroke="#ff335284" StrokeMiterLimit="1.0" Data="F1 M 54.747,27.624 C 54.747,42.603 42.603,54.747 27.624,54.747 C 12.644,54.747 0.500,42.603 0.500,27.624 C 0.500,12.644 12.644,0.500 27.624,0.500 C 42.603,0.500 54.747,12.644 54.747,27.624 Z">
<Path.Fill>
<RadialGradientBrush MappingMode="Absolute" GradientOrigin="392.717,-251.469" Center="392.717,-251.469" RadiusX="27.123" RadiusY="27.123">
<RadialGradientBrush.GradientStops>
<GradientStop Offset="0.00" Color="#ff00aae4"/>
<GradientStop Offset="1.00" Color="#ff2463a7"/>
</RadialGradientBrush.GradientStops>
<RadialGradientBrush.Transform>
<MatrixTransform Matrix="1.000,0.000,-0.000,-1.000,-365.093,-223.845" />
</RadialGradientBrush.Transform>
</RadialGradientBrush>
</Path.Fill>
</Path>
<!-- Your Button Text -->
<TextBlock Text="Button" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Button>
如果您需要对其进行更多的技术/清理,您可以直接将其放入控件模板中。以下是关于
希望这有帮助,幸运的是,网上还有很多自定义WPF按钮的教程。如果您想详细说明您想要的内容,比如您是为WPF拍摄还是为SL拍摄(VisualStateManager或Style Triggers等差异),那么人们可能会更有用。:) 你有多种选择来实现这一点。如果你真的只是想把你的路径放在一个按钮上,你可以像这样用最少的努力来完成它
<Button Width="75" Height="75">
<!-- Embed our elements in a grid since Content can be set only once -->
<Grid>
<!-- Your Path -->
<Path StrokeThickness="1.0" Stroke="#ff335284" StrokeMiterLimit="1.0" Data="F1 M 54.747,27.624 C 54.747,42.603 42.603,54.747 27.624,54.747 C 12.644,54.747 0.500,42.603 0.500,27.624 C 0.500,12.644 12.644,0.500 27.624,0.500 C 42.603,0.500 54.747,12.644 54.747,27.624 Z">
<Path.Fill>
<RadialGradientBrush MappingMode="Absolute" GradientOrigin="392.717,-251.469" Center="392.717,-251.469" RadiusX="27.123" RadiusY="27.123">
<RadialGradientBrush.GradientStops>
<GradientStop Offset="0.00" Color="#ff00aae4"/>
<GradientStop Offset="1.00" Color="#ff2463a7"/>
</RadialGradientBrush.GradientStops>
<RadialGradientBrush.Transform>
<MatrixTransform Matrix="1.000,0.000,-0.000,-1.000,-365.093,-223.845" />
</RadialGradientBrush.Transform>
</RadialGradientBrush>
</Path.Fill>
</Path>
<!-- Your Button Text -->
<TextBlock Text="Button" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Button>
如果您需要对其进行更多的技术/清理,您可以直接将其放入控件模板中。以下是关于
希望这有帮助,幸运的是,网上还有很多自定义WPF按钮的教程。如果您想详细说明您想要的内容,比如您是为WPF拍摄还是为SL拍摄(VisualStateManager或Style Triggers等差异),那么人们可能会更有用。:) 以下示例使用您的设计替换标准按钮模板,并添加内容演示器,以便您仍然可以设置按钮的内容
<Button Content="OK" Width="75" Height="75">
<Button.Template>
<ControlTemplate TargetType="Button">
<Grid>
<Path StrokeThickness="1.0" Stroke="#ff335284" StrokeMiterLimit="1.0" Data="F1 M 54.747,27.624 C 54.747,42.603 42.603,54.747 27.624,54.747 C 12.644,54.747 0.500,42.603 0.500,27.624 C 0.500,12.644 12.644,0.500 27.624,0.500 C 42.603,0.500 54.747,12.644 54.747,27.624 Z">
<Path.Fill>
<RadialGradientBrush MappingMode="Absolute" GradientOrigin="392.717,-251.469" Center="392.717,-251.469" RadiusX="27.123" RadiusY="27.123">
<RadialGradientBrush.GradientStops>
<GradientStop Offset="0.00" Color="#ff00aae4"/>
<GradientStop Offset="1.00" Color="#ff2463a7"/>
</RadialGradientBrush.GradientStops>
<RadialGradientBrush.Transform>
<MatrixTransform Matrix="1.000,0.000,-0.000,-1.000,-365.093,-223.845" />
</RadialGradientBrush.Transform>
</RadialGradientBrush>
</Path.Fill>
</Path>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Button.Template>
以下示例使用您的设计替换标准按钮模板,并添加内容演示器,以便您仍然可以设置按钮的内容
<Button Content="OK" Width="75" Height="75">
<Button.Template>
<ControlTemplate TargetType="Button">
<Grid>
<Path StrokeThickness="1.0" Stroke="#ff335284" StrokeMiterLimit="1.0" Data="F1 M 54.747,27.624 C 54.747,42.603 42.603,54.747 27.624,54.747 C 12.644,54.747 0.500,42.603 0.500,27.624 C 0.500,12.644 12.644,0.500 27.624,0.500 C 42.603,0.500 54.747,12.644 54.747,27.624 Z">
<Path.Fill>
<RadialGradientBrush MappingMode="Absolute" GradientOrigin="392.717,-251.469" Center="392.717,-251.469" RadiusX="27.123" RadiusY="27.123">
<RadialGradientBrush.GradientStops>
<GradientStop Offset="0.00" Color="#ff00aae4"/>
<GradientStop Offset="1.00" Color="#ff2463a7"/>
</RadialGradientBrush.GradientStops>
<RadialGradientBrush.Transform>
<MatrixTransform Matrix="1.000,0.000,-0.000,-1.000,-365.093,-223.845" />
</RadialGradientBrush.Transform>
</RadialGradientBrush>
</Path.Fill>
</Path>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Button.Template>
Doh,当他指定WPF或SL.+1计时时,我正打算这么做。:)@克里斯。WPF和silverlight在这里是一样的,所以我敢回答;)除非他想了解更多关于模板的潜在状态/转换的信息,如果SL或触发器作为一个完整的模板,每个WPF,但是只要问题的解决方案已经达成,我还是会给他一个+1。Cheers@ChrisW. - 这不是问题:)Doh,当他指定WPF或SL.+1作为计时时,我正打算这么做。:)@克里斯。WPF和silverlight在这里是一样的,所以我敢回答;)除非他想了解更多关于模板的潜在状态/转换的信息,如果SL或触发器作为一个完整的模板,每个WPF,但是只要问题的解决方案已经达成,我还是会给他一个+1。Cheers@ChrisW. - 这不是问题:)