2012-03-18 2 views
1

リストボックスの項目をリストボックスの幅全体に拡大するのに問題があります。ListBoxItem Horizo​​ntalContentAlignment =ストレッチが機能しない

  • セットリストボックスのHorizo​​ntalContentAlignment
  • をストレッチする:

    以下

    は、私は他の記事で見つかった次の提案を試みたが、彼らは私のために働いていない私のリストボックス

    <ListBox x:Name="MyListBox" 
           VerticalAlignment="Stretch" 
           HorizontalAlignment="Stretch" 
           HorizontalContentAlignment = "Stretch" 
           Margin="0,10,0,0" 
           ItemsSource="{Binding Path=Users}" 
           ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
           Grid.Column="0" 
           Grid.ColumnSpan="1" 
           Grid.Row="1" 
           Grid.RowSpan="3">      
         <ListBox.ItemTemplate> 
          <DataTemplate> 
           <local:MyListBoxTemplate/> 
          </DataTemplate> 
         </ListBox.ItemTemplate> 
    </ListBox> 
    

    のための私のXAMLです

  • listboxitemのスタイルを上書きする、つまりリストボックス内のItemContainerStyleタグ内の新しいスタイルxaml(注:私はコスモポリタンなナビゲーションテーマを使用しています)
  • 私は私のデータテンプレートのための別のXAMLファイルを使用していますので、Horizo​​ntalContentAlignmemt

を含めるようにCoreStyles.xamlにDefaultListBoxItemStyleスタイルを製作中

  • はそれですか? データテンプレートに問題がありますか? 他に何を試すことができるのか、誰にも示唆がありますか?

    おそらくListBoxの実際の幅にListBoxItem Widthをバインドすることができましたか?

    私はこれにかなり新しいので、私は本当にシンプル/明白な何かを逃した場合は事前にお詫び申し上げます!以下は

    私のデータのテンプレートです:

    <Grid x:Name="LayoutRoot" HorizontalAlignment="Stretch" ShowGridLines="True" Height="20"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="10*" /> 
         <ColumnDefinition Width="30*" /> 
         <ColumnDefinition Width="300*" /> 
         <ColumnDefinition Width="50*" /> 
         <ColumnDefinition Width="10*" /> 
        </Grid.ColumnDefinitions> 
        <Image x:Name="TwitterImageIcon" 
          Grid.Column="1" 
          Grid.ColumnSpan="1" 
          Source="{Binding Path=imageUrl}" 
          /> 
        <StackPanel Orientation="Horizontal" Grid.Column="2" Grid.ColumnSpan="1" HorizontalAlignment="Stretch" > 
    
         <TextBlock x:Name="TwitterUsernameTextBlock" 
            Text="{Binding Path=username,StringFormat='@\{0\} '}"/> 
         <TextBlock x:Name="TwitterFullNameTextBlock" 
           Text="{Binding Path=fullname}"/> 
        </StackPanel> 
    
    
         <Button x:Name="InfoButton" 
          Content="Info" 
          Grid.Column="3" 
          HorizontalAlignment="Stretch" 
          VerticalAlignment="Stretch"/> 
         <Border x:Name="StyleBorder" /> 
        </Grid> 
    

    任意の提案は大歓迎。

    ありがとうございます。

    更新:

    <ListBox...> 
         <ListBox.Resources> 
          <Style TargetType="ListBoxItem"> 
           <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
          </Style> 
         </ListBox.Resources> 
        </ListBox> 
    

    をそれが終わっ推移し、選択されたとき、リストボックス項目のhiglightingはの残りの部分に異なるスタイルになるように、しかし、国際的なテーマに影響を与え作品:追加したときということに言及し忘れましたコスモポリタンのテーマ。

  • 答えて

    7

    はあなたのリストボックス内で、これを試してみてください:

    <ListBox...> 
        <ListBox.Resources> 
         <Style TargetType="ListBoxItem"> 
          <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
         </Style> 
        </ListBox.Resources> 
    </ListBox> 
    

    EDIT1 (私の悪い英語のため申し訳ありません)

    はCoreStyles.xaml(x:Key="DefaultListBoxItemStyle"を探してください)にListBoxItemスタイルを探します。そのスタイルインサイド 、ContentControlにはx:Name="contentControl"の名前見つけてHorizontalContentAlignmentプロパティを追加、コードが変更後に次のようになります。

    <ContentControl x:Name="contentControl" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" > 
        <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" VerticalAlignment="Center" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="7"/> 
    </ContentControl> 
    

    今、あなたは、私が最初の答えに表示Listbox.Resourcesを削除することができます...もしこの動作をすべてのlistBoxには欲しくない場合は、このスタイルをコピーして別のキーを与えることができます。

    +0

    ああ、私はすでにこれを試したことを言及しておきましたが(ListBoxでもそうです。ItemContainerStyleタグ)、これはCoreStyles.xamlのコスモポリタンテーマで定義されたスタイルを上書きします。したがって、各ListBoxアイテムのハイライトはデフォルトスタイルになり、コスモポリタンテーマの残りの部分とは一致しません。あなたの応答をありがとう – rallen

    +0

    私のEDIT1を参照してください、それは動作する必要があります:) – Leo

    +0

    完璧なレオに感謝! – rallen

    関連する問題