C#WPF listBox垂直对齐

时间:2015-11-15 15:12:43

标签: c# wpf listbox alignment

我有一个带有复选框的listBox我希望通过设置垂直对齐来管理对齐。

enter image description here

我在这里看过几个解决方案,例如将verticalContentAlignment或verticalAlignment设置为top但不起作用。

我也看到一些设定风格但无法完成它。

我想要的是知道为什么唯一的元素在那里。我无法理解为什么它会卡在中间。

这是我的代码:

 <ListBox x:Name="lb2Tab3"   HorizontalContentAlignment="Stretch" FontSize="{StaticResource BUTTON_FONTSIZE}" Background="{x:Null}" BorderBrush="{x:Null}"  Margin="0,0,0.8,0"  >
     <CheckBox x:Name="cbEasyRunManagesPcDmis" Margin="20"  Content="EasyRun Manages PC-DMIS" HorizontalAlignment="Left"  VerticalAlignment="Top" Click="cbTouchScreen_Click" />
 </ListBox>

thanx任何帮助 帕特里克

---编辑--- 根据飞盘的要求,这里是完整的xaml。抱歉它的长度:

<Base:WindowViewBase x:Class="EasyRun.Views.MainView.MainView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"                
    xmlns:Base="clr-namespace:Cannoli.Base;assembly=Cannoli"
    xmlns:design="clr-namespace:EasyRun.Views.MainView.Design"
            xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
            xmlns:System="clr-namespace:System;assembly=mscorlib"
            xmlns:CannoliBorderlessWindow="clr-namespace:CannoliBorderlessWindow;assembly=Cannoli.BorderlessWindow"
    d:DesignWidth="212.32" d:DesignHeight="109.92"
            Title="EASY RUN 2.0"  Height="600" Width="900"  MinWidth="500" FontFamily="/EasyRun2.0;component/Resources/Fonts/#FontAwesome" Icon="/EasyRun2.0;component/Resources/Images/Lightning.png"          
    >

<d:WindowViewBase.DataContext>
    <design:DesignMainViewModel />
</d:WindowViewBase.DataContext>

<i:Interaction.Behaviors>
    <CannoliBorderlessWindow:CannoliBorderlessWindowBehavior/>
</i:Interaction.Behaviors>

<!-- RISORSE GLOBALI: VARIABILI -->
<Window.Resources>
    <System:Double x:Key="BUTTON_HEIGHT">50</System:Double>
    <System:Double x:Key="BUTTON_FONTSIZE">20</System:Double>
</Window.Resources>

<Grid x:Name="MainGrid">
    <Grid.Background>
        <ImageBrush ImageSource="/EasyRun2.0;component/Resources/Images/gradientWallpaper.jpg"/>
    </Grid.Background>
    <TextBlock Text="{Binding WelcomeMessage}" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="Bold" Margin="428,128,99.6,228"/>
    <StackPanel Orientation="Vertical" VerticalAlignment="Bottom" Margin="0,0,0,20">
    </StackPanel>
    <TabControl TabStripPlacement="Left"  Margin="0,0,-0.4,0" Background="{x:Null}">
        <!-- +++++++++++++ TAB1 ++++++++++++ -->
        <TabItem  Name="tabItem1" HorizontalAlignment="Center"  Height="80" FontSize="50" Background="{x:Null}" VerticalAlignment="Top" >
            <TabItem.Header>
                <StackPanel>
                    <TextBlock HorizontalAlignment="Center"   Text="&#xF0A7;"/>
                    <TextBlock Name="tbTab1" HorizontalAlignment="Center" Visibility="Hidden" FontSize="20"/>
                </StackPanel>
            </TabItem.Header>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <Border x:Name="Border1Tab1" BorderBrush="Gainsboro" BorderThickness="5" Width="200" CornerRadius="8,8,3,3" Margin="10,10,10,10.4" >
                    <ListBox x:Name="lbButtons1" Background="{x:Null}" BorderBrush="{x:Null}" Margin="10,10,10,10" />
                </Border>
                <Border x:Name="Border2Tab1" BorderBrush="Gainsboro" MinWidth="100" BorderThickness="5" CornerRadius="8,8,3,3" Grid.Column="1" Margin="10,10,9.2,10" />
            </Grid>
        </TabItem>
        <!-- +++++++++++++ TAB2 ++++++++++++ -->
        <TabItem Name="tabItem2" HorizontalAlignment="Center" Height="80"  FontSize="50">
            <TabItem.Header>
                <StackPanel>
                    <TextBlock Text="&#xF0F7;"/>
                    <TextBlock Name="tbTab2" Visibility="Hidden" FontSize="20"/>
                </StackPanel>
            </TabItem.Header>
            <TabItem.Background>
                <ImageBrush/>
            </TabItem.Background>
        </TabItem>
        <!-- +++++++++++++ TAB3 ++++++++++++ -->
        <TabItem Name="tabItem3" HorizontalAlignment="Center" Height="80" FontSize="50" Background="{x:Null}" >
            <TabItem.Header>
                <StackPanel>
                    <TextBlock Text="&#xF013;" HorizontalAlignment="Center"  />
                    <TextBlock Name="tbTab3" Visibility="Hidden" FontSize="20"/>
                </StackPanel>
            </TabItem.Header>

            <Grid >
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <Border x:Name="Border1Tab3" BorderBrush="Gainsboro" BorderThickness="5" Width="200" CornerRadius="8,8,3,3" Margin="10,10,10,10" >
                    <ListBox x:Name="lbButtons3"  FontSize="{StaticResource BUTTON_FONTSIZE}"  HorizontalContentAlignment="Stretch"  Background="{x:Null}" BorderBrush="{x:Null}"  >
                        <Button Name="bt1Tab3" Background="{x:Null}"   Content="1" Click="Button_Click" />
                        <Button Name="bt2Tab3" Background="{x:Null}" Height="{StaticResource BUTTON_HEIGHT}"  Content="2" Click="Button_Click"/>
                        <Button Name="bt3Tab3" Background="{x:Null}" Height="{StaticResource BUTTON_HEIGHT}"  Content="3" Click="Button_Click"/>
                        <Button Name="bt4Tab3" Background="{x:Null}" Height="{StaticResource BUTTON_HEIGHT}"  Content="4" Click="Button_Click"/>
                        <Button Name="bt5Tab3" Background="{x:Null}" Height="{StaticResource BUTTON_HEIGHT}"  Content="5" Click="Button_Click"/>
                        <Button Name="bt6Tab3" Background="{x:Null}" Height="{StaticResource BUTTON_HEIGHT}"  Content="6" Click="Button_Click"/>
                        <Button Name="bt7Tab3" Background="{x:Null}" Height="{StaticResource BUTTON_HEIGHT}"  Content="7" Click="Button_Click"/>
                        <Button Name="bt8Tab3" Background="{x:Null}" Height="{StaticResource BUTTON_HEIGHT}"  Content="8" Click="Button_Click"/>
                    </ListBox>
                </Border>
                <Border x:Name="Border2Tab3" BorderBrush="Gainsboro"  MinWidth="100" BorderThickness="5" CornerRadius="8,8,3,3" Grid.Column="1" Margin="10,10,10,10"  >
                    <StackPanel >
                        <ListBox x:Name="lb1Tab3" HorizontalContentAlignment="Stretch" FontSize="{StaticResource BUTTON_FONTSIZE}" Background="{x:Null}" BorderBrush="{x:Null}"  Margin="0,0,0.4,0" d:IsHidden="True"  >
                            <StackPanel Orientation="Horizontal">
                                <TextBlock x:Name="lbLanguage" Margin="20" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Center" TextAlignment="Center" Grid.Row="1"><Run Text="Language"/></TextBlock>
                                <ComboBox x:Name="cmbLanguages" Margin="20" HorizontalAlignment="Left"  VerticalAlignment="Center" Width="246" Height="35" DropDownClosed="cmbLanguages_DropDownClosed"/>
                            </StackPanel>
                            <CheckBox x:Name="cbTouchScreen" Margin="20"  Content="Use touch screen" HorizontalAlignment="Left"  VerticalAlignment="Top" Click="cbTouchScreen_Click" />
                            <CheckBox x:Name="cbEnableImages" Margin="20"  Content="Enable Images" HorizontalAlignment="Left"  VerticalAlignment="Top" />
                            <StackPanel Name="spImageDimension" Orientation="Horizontal">
                                <TextBlock x:Name="lbImageDimension" Margin="20" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Center"  TextAlignment="Center"><Run Text="Image dimension"/></TextBlock>
                                <ComboBox x:Name="cmbImageDimension" Margin="20" Text="250 px" HorizontalAlignment="Left"   DropDownClosed="cmbImageDimension_DropDownClosed" VerticalAlignment="Center" Width="246" Height="35" IsEditable="True">
                                    <TextBlock ><Run Text="50 px"/></TextBlock>
                                    <TextBlock ><Run Text="100 px"/></TextBlock>
                                    <TextBlock ><Run Text="150 px"/></TextBlock>
                                    <TextBlock ><Run Text="200 px"/></TextBlock>
                                    <TextBlock ><Run Text="250 px"/></TextBlock>
                                </ComboBox>
                            </StackPanel>
                        </ListBox>
                        <ListBox x:Name="lb2Tab3" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Top" FontSize="{StaticResource BUTTON_FONTSIZE}" Background="{x:Null}" BorderBrush="{x:Null}"  Margin="0,0,0.8,0"  >
                            <CheckBox x:Name="cbEasyRunManagesPcDmis" Margin="20"  Content="EasyRun Manages PC-DMIS" HorizontalAlignment="Left"  VerticalAlignment="Top" Click="cbTouchScreen_Click" />
                        </ListBox>
                        <ListBox x:Name="lb3Tab3" HorizontalContentAlignment="Stretch" FontSize="{StaticResource BUTTON_FONTSIZE}" Background="{x:Null}" BorderBrush="{x:Null}"  Margin="0,0,0.4,0"  />
                        <ListBox x:Name="lb4Tab3" HorizontalContentAlignment="Stretch" FontSize="{StaticResource BUTTON_FONTSIZE}" Background="{x:Null}" BorderBrush="{x:Null}"  Margin="0,0,0.4,0" d:IsHidden="True"  >
                        </ListBox>
                        <ListBox x:Name="lb5Tab3" HorizontalContentAlignment="Stretch" FontSize="{StaticResource BUTTON_FONTSIZE}" Background="{x:Null}" BorderBrush="{x:Null}"  Margin="0,0,0.4,0" d:IsHidden="True"  >
                        </ListBox>
                        <ListBox x:Name="lb6Tab3" HorizontalContentAlignment="Stretch" FontSize="{StaticResource BUTTON_FONTSIZE}" Background="{x:Null}" BorderBrush="{x:Null}"  Margin="0,0,0.4,0" d:IsHidden="True"  >
                        </ListBox>
                        <ListBox x:Name="lb7Tab3" HorizontalContentAlignment="Stretch" FontSize="{StaticResource BUTTON_FONTSIZE}" Background="{x:Null}" BorderBrush="{x:Null}"  Margin="0,0,0.4,0" d:IsHidden="True"  >
                        </ListBox>
                        <ListBox x:Name="lb8Tab3" HorizontalContentAlignment="Stretch" FontSize="{StaticResource BUTTON_FONTSIZE}" Background="{x:Null}" BorderBrush="{x:Null}"  Margin="0,0,0.4,0" d:IsHidden="True"  >
                        </ListBox>
                    </StackPanel>
                </Border>
            </Grid>


        </TabItem>

    </TabControl>
</Grid>

2 个答案:

答案 0 :(得分:0)

您需要对齐ListBox

<ListBox x:Name="lb2Tab3" HorizontalContentAlignment="Stretch"  
                          VerticalContentAlignment="Top"

如果这不起作用,那么发布更多的XAML

答案 1 :(得分:0)

所以这个问题与另一个上面有几个listBox的事实有关。我认为让它们隐藏就足够了但是当我用黑色绘制第二个listBox时,我发现它不是从顶部开始的(见图)。

enter image description here

因此,解决方案是为所有未使用的列表框设置Visibility = Collapsed。 感谢kirotab让我走上了正确的道路。不确定我是否可以对你的评论进行投票。