我想在blend或wpf中创建一个自定义形状框架的按钮。目标是用图像完全填充按钮。我该怎么做。我希望我的按钮就像图像一样。
<Button x:Name="btn_Part3" Content="Button" Margin="107,593,1075,40" Style="{DynamicResource ButtonStyle2}" Click="btn_Part3_Click"/>
我的风格将是
<Style x:Key="btn_Part3" TargetType="{x:Type Button}"/>
<Style x:Key="btn_P3" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid Margin="11.673,79.49,155.327,20.51">
<Image Source="3.png" Stretch="Fill" Margin="68.688,-123.48,43.312,203.98"/>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="74.688,-119.94,48.188,203.98" Width="10.124" Content="3"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused" Value="True"/>
<Trigger Property="IsDefaulted" Value="True"/>
<Trigger Property="IsMouseOver" Value="True"/>
<Trigger Property="IsPressed" Value="True"/>
<Trigger Property="IsEnabled" Value="False"/>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
这是由混合生成的 tnx为你的帮助和srry为坏英语
答案 0 :(得分:1)
您发布的代码中存在许多错误。
我真诚地建议您在MSDN上阅读有关Styling and Templating的更多信息。
为了解决您的问题,请将ControlTemplate Grid更改为以下内容。基本上删除控件模板中的所有边距并将网格背景设置为透明。这将解决您的问题。但就像我建议您在查看代码之后继续阅读之前需要阅读有关样式和模板的内容。
<Grid Background="Transparent">
<Image Source="3.png" Stretch="Fill" />
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Width="10.124" Content="3"/>
</Grid>
总结一下