항목을 가로로 정렬하는 ListBox를 만들고 싶습니다. 각 항목은 TextBox 여야하며 텍스트의 양에 관계없이 목록 상자를 세로로 채워야합니다. Tweetdeck을 사용한 적이 있다면 비슷한 효과를 기대하고 있습니다. 여기에 내가있어 무엇 :빈 TextBox 스트레치를 세로로 만드는 방법은 무엇입니까?
<ListBox
Background ="DarkGray"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
ItemsSource="{Binding Path=Items}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<DockPanel IsItemsHost="True"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Gray" BorderThickness="2" CornerRadius="5" Margin="2,0,2,0">
<Grid Width="250">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBox
Grid.Row="0"
Grid.Column="0"
VerticalAlignment="Stretch"
Text="{Binding Path=Messages, Mode=OneWay}" />
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
은 무엇 발생하는 텍스트 상자가 고집이 아니라 수직으로 스트레칭보다는, 그 안에 텍스트를 맞는 것입니다. 내가 도와주지 않았 DockPanel에 대한 그리드 전환 시도했습니다. TextBox의 Height 속성을 바인딩 할 수 있지만 불쾌한 것 같습니다.
내가 놓친 트릭이 있습니까?
CSS가있을 수 있습니다. 블록과 높이 값을 표시하도록 설정하십시오. 이거 해봤 니? –
모든 표준 WPF 컨트롤은 기본값으로 'VerticalAlignment = Stretch'를 가지고 있으므로 설정을 많이하지는 않습니다. 대신'ItemsPanelTemplate'을 Grid로 만들려고 했습니까? 적어도 그 내용은 부모님을 자동으로 채울 것입니다. DockPanel이 필요합니까? – Charleh
CSS는 WPF에서 꽤 쓸모 없게 될 것입니다 :) – Charleh