2010-09-30 52 views
0

我做了WPF中的自定義樣式表:Horizo​​ntalContentAlignment沒有拉伸完美

 <DataTemplate x:Key="SelectedTemplate"> 
      <StackPanel Background="#FF4E4E4E" HorizontalAlignment="Stretch"> 
       <TextBlock Text="{Binding Path=Title}" Foreground="#FFD80000" /> 
      </StackPanel> 
     </DataTemplate> 

     <Style TargetType="{x:Type ListBoxItem}" x:Key="ContainerStyle"> 
      <Setter Property="ContentTemplate" 
        Value="{StaticResource ItemTemplate}" /> 
      <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="ContentTemplate" 
          Value="{StaticResource SelectedTemplate}" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 

...

<ListBox 
     Name="lbSongs" 
     DockPanel.Dock="Left" 
     ItemsSource="{Binding Path=SongDirectory}" 
     SelectedItem="{Binding Path=Song, Mode=TwoWay}" 
     Visibility="{Binding Path=ListVisibility}" 
     ItemContainerStyle="{StaticResource ContainerStyle}" 
     HorizontalContentAlignment="Stretch" 
     Width="180px" Background="#FF333333" /> 

我試圖使爲自定義樣式選定的項目。爲了使選擇條拉伸到列表框的寬度,我設置了ItemContainerStyle的Horizo​​ntalContentAlignment屬性設置爲「拉伸」。問題是,它沒有充分伸展,左邊一個小酒吧仍然和原來的(藍色)選擇欄仍是可見的存在。見截圖:

alt text

我怎樣才能使它伸展到全尺寸?或者我如何設計原始選擇欄?

在此先感謝。

回答

1

只需設置填充爲ListBoxItem的爲零。藍條應該消失。

<Style TargetType="{x:Type ListBoxItem}" x:Key="ContainerStyle"> 
     <Setter Property="Padding" Value="0"/> 
     ... 
</Style> 

另一種選擇是重新編寫ListBoxItem的ControlTemplate,以便您可以更好地控制它的外觀。但是,是的,這可能不是你的情況是必要的。

+0

謝謝,這確實起作用。 – 2010-09-30 19:29:47

相關問題