1

pngファイルを使用してWPFで画像ボタンを作成しました。ただし、ボタン画像の外側には常に境界線があります。それを取り除く方法はありますか?画像の'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

このような詳細を変更するには、をオーバーライドする必要があります。ドキュメントButton.Templateにカスタムボタンテンプレートの簡単な例があります。ControlTemplate

于 2012-07-10T00:37:11.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 に答える