У меня есть listbox
, в котором я передаю 5 элементов в каждой строке. Xml файл:ListBox с DockPanel Alignment
<ListBox x:Name="DatabaseBox">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<DockPanel">
<Image x:Name="ToggleFavoriteImage" Width="15" Height="15" Tag="{Binding Tag}" Source="{Binding ImageSource}" MouseLeftButtonDown="ToggleFavoriteImage_MouseLeftButtonDown"/>
<TextBlock x:Name="ListBoxSName" Width="220" Text="{Binding Name}" Margin="30,0,0,0" FontSize="11" MouseLeftButtonDown="ListBoxSName_MouseLeftButtonDown"/>
<Button x:Name="ListBoxSCoyntry" Height="17" Content="{Binding City}" FontSize="11" Click="ListBoxSCity_Click"/>
<Button x:Name="ListBoxSCity" Height="17" Content="{Binding Genre}" FontSize="11" Click="ListBoxSGenre_Click"/>
<Button x:Name="ListBoxSGenre" Height="17" Content="{Binding Country}" FontSize="11" Click="ListBoxSCountry_Click"/>
</DockPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Что я хочу сделать, это Image
и TextBlock
пристыкован влево, а все остальные Купированный правой бок о бок. Я пробовал DockPanel.Dock ="Rigth"
для всех Buttons
, но все становится очень испорченным. Кто-нибудь с идеей?
Это работало почти идеально. Единственное, что даже думали, что они состыкованы. Прямо и сейчас, они оставляют огромное пустое пространство справа. – oimitro
Используйте 'DockPanel.Dock =" Заполнить "' это один из них, так как он будет использовать все оставшееся свободное место. Поведение «HorizontalAlignment» в этом случае – saamorim
Это сработало отлично. Спасибо. Я решил не следовать StackPanel. Я сделал это так: 1st Button: DockPanel.Dock = «Right» 2nd Button: DockPanel.Dock = «Right» 3nd Button: HorizontalAlignment = «Right». И все элементы в DockPanel. – oimitro