2016-08-08 4 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"을 설정하지만 그 대신 모든 행에 표시되는, 그것은

버튼 스타일의 마지막 행에서만이있다. 스타일에 Image의 인스턴스를 정의하면 shared 스타일 (일종의 WPF 최적화) 인 경우에만 한 번만 사용할 수 있습니다.

FrameworkElementFactory은 모든 항목에 대해 새 Image을 만들므로 DataTemplate에서 작동하지만 스타일에서는 작동하지 않습니다.

+0

코드를 실제 단추로 옮겼습니다.이 스타일을 한 번만 사용하려고 했으므로 작동했습니다. 힌트를 주셔서 감사합니다. – AnishaJain

관련 문제