2016-08-08 15 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

editButtonStyle設置x:Shared="False"。你以你的風格定義了一個Image的實例,當然這隻能用於一次shared風格(某種WPF優化)。

這將工作在DataTemplate,因爲FrameworkElementFactory會爲每個項目創建一個新的Image,但它不適用於樣式。

+0

我將代碼移到了實際的按鈕上,因爲我只打算使用這種風格並且它可以工作。感謝提示 – AnishaJain

相關問題