2016-08-08 24 views
1

私は透明な背景を持つ画像ボタンを作成したので、customListViewを持っています。ボタンがすべてのリストビューの行に表示されない

<Style TargetType="Button" x:Key="editButtonStyle" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"> 
    <Setter Property="Width" Value="20" /> 
    <Setter Property="Height" Value="20" /> 
    <Setter Property="Content"> 
     <Setter.Value> 
      <Image Source="edit_icon.png" /> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="Background" Value="Transparent"/> 
    <Setter Property="BorderThickness" Value="0"/> 
    <Setter Property="BorderBrush" Value="Transparent"/> 
</Style> 

コール:

<DataTemplate> 
    <Button Style="{StaticResource editButtonStyle}"> 
     <Button.Template> 
      <ControlTemplate TargetType="Button"> 
       <ContentPresenter Content="{TemplateBinding Content}"/> 
      </ControlTemplate> 
     </Button.Template> 
    </Button> 
</DataTemplate> 

答えて

1

があなたのeditButtonStylex:Shared="False"を設定する代わりに、すべての行に示されているの、それは

ボタンのスタイルの最後の行にのみあります。スタイルがshared(何らかの種類のWPF最適化)である場合にのみ、一度しか使用できないスタイルでImageのインスタンスを定義します。

FrameworkElementFactoryはすべてのアイテムに対して新しいImageを作成するため、これはDataTemplateで機能しますが、スタイルでは機能しません。

+0

コードを実際のボタンに移動しました。私はこのスタイルを一度しか使用しませんでした。ヒントのおかげで – AnishaJain

関連する問題