1

我在 WPF 中使用 png 文件创建了一个图像按钮。但是,按钮图像外总是有一个边框。有没有办法摆脱它?我试图将按钮的 image'stretch ='fill',borderthickness 设置为 0,但到目前为止还没有工作。

感谢所有的答复。这是我的代码。我试图用一种风格来设置东西。我的代码和你的代码有什么区别?我对你们提到的 contentTemplate 和控件模板有点困惑。

<Style x:Key="TopPositionButtonStyle" TargetType="Button">        

    <Setter Property="Width" Value="50" />
    <Setter Property="Height" Value ="30" />
    <Setter Property="Padding" Value="0" />
    <Setter Property="BorderBrush" Value="SteelBlue" />
    <Setter Property="BorderThickness" Value="0" />

    <Setter Property="ContentTemplate">
        <Setter.Value>

            <DataTemplate>
                <Grid Background="SteelBlue">
                    <Image Source="images/button_up.png"
                           HorizontalAlignment="Center" 
                           Margin="0,0,0,0" Height="30" Width="50" 
                           Stretch="Fill"/>

                    <TextBlock Text="POSITION" 
                               HorizontalAlignment="Center" 
                               Foreground="White" 
                               Margin="5,5,0,0"/>
                </Grid>
            </DataTemplate>
        </Setter.Value>

    </Setter>
</Style>
4

3 回答 3

2

间距很可能来自默认Padding值。首先要尝试的应该是:

Padding="0"

如果这不能为您提供您想要的下一步是自定义模板以删除所有间距,例如:

<Button Content="{StaticResource HowEverYourImageIsSet}">
    <Button.Template>
        <ControlTemplate TargetType="{x:Type Button}">
            <Border Background="{TemplateBinding Background}" 
                    BorderThickness="0" Padding="0">
                <ContentPresenter/>
            </Border>
        </ControlTemplate>
    </Button.Template>
</Button>
于 2012-07-10T03:09:46.333 回答
1

不确定您是将其设置为背景还是仅将图像设置为内容。你总是可以像 HB 提到的那样重写模板。

您也可以使用 ToolBar.ButtonStyleKey 因为它没有边框。

任何一个:

<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
    <Image Source="my.png"/>
</Button>

或类似的东西:

<Button>
    <Button.Style>
        <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
            <!-- Set your properties here -->
        </Style>
     </Button.Style>
</Button>
于 2012-07-10T02:29:54.430 回答
1

您需要重写Button.Template以更改此类详细信息,文档中有一个自定义按钮模板的简单ControlTemplate示例

于 2012-07-10T00:37:11.333 回答