2013-05-20 2 views
0

다른 이미지가있는 단추의 스타일을 만들고 싶습니다.WPF 이미지가있는 단추 스타일

<Style TargetType="Button" 
     x:Key="PaintButton"> 
    <Setter Property="Width" 
      Value="40"></Setter> 
    <Setter Property="Height" 
      Value="40"></Setter> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate> 
     <Grid> 
      <Border CornerRadius="3" 
        BorderThickness="2" 
        BorderBrush="Green"> 
      <Image Source="{TemplateBinding Button.Content}" /> 
      </Border> 
     </Grid> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 

및 사용하려고 : 나는 다음을 수행하려고

<Button Content="images/pen.png" 
     HorizontalAlignment="Left" 
     Style="{DynamicResource PaintButton}" /> 

을하지만 이미지가 표시되지 않습니다. 왜 그리고 어떻게 올바르게 하는가?

답변

2

"이미지"가 다른 이미지의 올바른 소스가 아닙니다. BitmapImage를 Button의 내용으로 사용하거나 템플릿의 ContentPresenter를 사용하십시오.

옵션 1.

<Button Style="{StaticResource PaintButton}"> 
     <BitmapImage UriSource="Back_Forward.png"/> 
    </Button> 

옵션 2.

<Setter Property="Template"> 
    <Setter.Value> 
    <ControlTemplate> 
     <Grid> 
     <Border CornerRadius="3" 
       BorderThickness="2" 
       BorderBrush="Green"> 
      <ContentPresenter Content="{TemplateBinding Button.Content}" /> 
     </Border> 
     </Grid> 
    </ControlTemplate> 
    </Setter.Value> 
</Setter> 
1

<Style TargetType="Button"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Button}"> 
        <StackPanel Orientation="Horizontal"> 
         <Grid Height="30" Width="30" Background="{TemplateBinding Background}"/> 
         <TextBlock Text="{TemplateBinding Content}" TextAlignment="Center" VerticalAlignment="Center"/> 
        </StackPanel> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Cursor" Value="Hand"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

<Button Name="btnPrintCard" Margin="2" Content="Print Card"> 
       <Button.Background> 
        <ImageBrush ImageSource="images/ic_print_black_48dp.png"/> 
       </Button.Background> 
      </Button> 
을 시도하십시오