Как правильно выровнять RadioButton в WPF - PullRequest
2 голосов
/ 18 марта 2012

Пробовал этот урок http://www.wpftutorial.net/ListBoxDataTemplate.html

и думал о добавлении переключателя следующим образом

   <ListBox Margin="10" ItemsSource="{Binding}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="60"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="20"/>
                    </Grid.ColumnDefinitions>
                    <Border Grid.Column="0" Margin="5" BorderBrush="Black" BorderThickness="1">
                        <Image Source="{Binding Path=Image}" Stretch="Fill" Width="50" Height="50" />
                    </Border>
                    <StackPanel Grid.Column="1" Margin="5" >
                        <StackPanel Orientation="Horizontal" TextBlock.FontWeight="Bold" >
                            <TextBlock Text="{Binding Path=Some1}" />
                            <TextBlock Text="{Binding Path=Firstname, FallbackValue=FirstName}" />
                            <TextBlock Text="{Binding Path=Lastname, FallbackValue=LastName}" Padding="3,0,0,0"/>
                        </StackPanel>
                        <TextBlock Text="{Binding Path=Age, FallbackValue=Age}" />
                        <TextBlock Text="{Binding Path=Role, FallbackValue=Role}" />
                    </StackPanel>

                    <RadioButton Grid.Column="2" Margin="5" HorizontalAlignment="Right" GroupName="A1"/>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

, но в результате получается

enter image description here

Любая помощь в выравнивании переключателя вправо рядом с краем списка?спасибо

Ответы [ 3 ]

3 голосов
/ 18 марта 2012

Сначала вам нужно заставить растянуть содержимое шаблона , а затем вы можете создать контент, который выровнен по правой стороне.

3 голосов
/ 18 марта 2012

Вам необходимо выровнять ширину сеток внутри вашего DataTemplate.Вы можете сделать это с помощью SharedSizeGroup, подробности см. В этом вопросе:

Как сделать столбец в списке в WPF одинаковой ширины для всех элементов?

0 голосов
/ 18 марта 2012

Добавление более подробной информации к ответу @ColinE ...

Использовать SharedSizeGroup.

<ListBox ... Grid.IsSharedSizeScope="True">
   ...
   <Grid.ColumnDefinitions>
       <ColumnDefinition Width="60"/>
       <ColumnDefinition SharedSizeGroup="secondColumn" />
       <ColumnDefinition Width="20"/>
   </Grid.ColumnDefinitions>

   ...
</ListBox>

Это скажет WPF синхронизировать второй столбец всех сеток (технически ширина равна 'Auto', но она будет одинаковой для всех сеток).

Другой альтернативой может быть использование ListView и определение столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...