画面の左側に、リストボックスを含むドック パネルがあります。リストボックスには、別のクラスで定義されたカスタム項目が取り込まれます。リストボックスの右側にグリッドスプリッターがあります。
グリッドスプリッターをクリックしてドラッグすると、リストボックスのサイズが期待どおりに変更されますが、内部のアイテムは変更されません。
コントロールが切り取られたときに textrimming を使用できるように、それに応じて内部のアイテムのサイズを変更したいと思います。
私は現在持っています:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150" MaxWidth="500" MinWidth="100"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<toolkit:DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,9,0">
<Button toolkit:DockPanel.Dock="Top" Height="30" Content="Create" Visibility="{Binding Path=IsVisible, Mode=TwoWay}" Command="{Binding Path=Create, Mode=TwoWay}" />
<ScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden">
<ListBox HorizontalAlignment="Stretch" ItemContainerStyle="{StaticResource ItemContainerStyle}" ItemsSource="{Binding Path=ViewModel, Mode=TwoWay}" SelectedItem="{Binding Path=Selected, Mode=TwoWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" HorizontalAlignment="Stretch">
<ContentControl HorizontalAlignment="Stretch">
<myNamespace:MycustomControl HorizontalAlignment="Stretch" DataContext="{Binding}" Height="40"/>
</ContentControl>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
</toolkit:DockPanel>
<sdk:GridSplitter Width="10" HorizontalAlignment="Right" Grid.Row="1" Style="{StaticResource VerticalGridSplitterStyle}" />
また、カスタム アイテム クラス内では、すべてが HorizontalAlignment = Stretch と定義されており、固定幅が設定されていません。
編集:また、カスタム項目の幅をリストボックスの幅にバインドしようとしましたが、うまくいきませんでした。