2016-08-30 2 views
1

私はボタンをPNGで視覚化しようとしています(境界線、グラデーションなどはありません)。私が何をしたか基本的なカスタムスタイルを適用するとボタンが見えなくなります - WPF

は次のとおりです。

  • リソース

    <Style x:Key="PlainImageButton" TargetType="{x:Type Button}"> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="Button"> 
           <ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
    </Style> 
    
  • XAML

    <Button Width="16" Height="16" Style="{DynamicResource PlainImageButton}"> 
           <Button.Background> 
            <ImageBrush ImageSource="Images/pencil.png"/> 
           </Button.Background> 
         </Button> 
    

しかし、ボタンが見えない

enter image description here

どうしてですか?

答えて

1

テンプレートで提供された背景を使用する必要があります。そのように:

<Button.Template> 
    <ControlTemplate TargetType="{x:Type ButtonBase}"> 
     <Border x:Name="border" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"> 
      <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" /> 
     </Border> 
    </ControlTemplate> 
</Button.Template> 
0

ボタンに背景として画像を供給しています。テンプレートには、あなたがここでは、この

<Button Width="16" 
       Height="16" 
       Style="{DynamicResource PlainImageButton}"> 
      <Button.Content> 
       <Image Source="pencil.png" /> 
      </Button.Content> 
     </Button> 

を試すのContentPresenter

と結合するためにbackgroundプロパティを使用していないのに対し、私はあなたのテンプレート

でのContentPresenterと結合される画像などのコンテンツを設定しています

希望するもの:

関連する問題