2015-11-15 4 views
0

У меня есть listBox с флажком. Я хочу управлять выравниванием путем установки вертикального выравнивания.C# WPF listBox вертикальное выравнивание

enter image description here

Я видел несколько решения здесь, например, установите verticalContentAlignment или verticalAlignment сверху, но это не сработало.

Я также видел некоторые настройки стиля, но не смог это сделать.

Что бы я хотел, это знать, ПОЧЕМУ ЕСТЬ ТОЛЬКО элемент. Я не понимаю, почему он застрял посередине.

Вот мой код:

<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> 

спасибо за любую помощь Патрик

--- EDIT --- В соответствии с просьбой Frisbee здесь полный 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> 

+1

Вы уверены, что это проблема с 'CheckBox' из того, что я вижу, фон« ListBox »имеет значение null, поэтому этот фон исходит откуда-то еще. Поместите некоторый цвет в «ListBox», чтобы увидеть, находится ли он на всей странице, или там внизу – kirotab

ответ

0

Таким образом, проблема была связана с тот факт, что есть несколько listBox один поверх другого. Я думал, что сделать их скрытыми достаточно, но когда я нарисовал второй listBox в черном, я увидел, что он не начинается с вершины (см. Изображение).

enter image description here

Таким образом, решение было установить Visibility = Collapsed для всех ListBox, которые не используются. Спасибо kirotab за то, что поставили меня на правильный путь. Не уверен, могу ли я проголосовать за ваш комментарий.

+0

Рад, что вы сработали и жаль, что я не мог больше помочь, но всегда хорошо, когда вы сами решаете свои проблемы, поэтому, возможно, это было к лучшему. Кстати, если вы используете другую платформу, все они кажутся похожими, например, в Android или Web (HTML) у вас есть опция, которая скрывает только элемент и скрывает его, но также удаляет его из структуры – kirotab

0

Вы должны выравнивать ListBox

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

Если это не работает, а затем разместить больше вашего XAML

+0

см. Мое редактирование, пожалуйста. Thanx – Patrick

Смежные вопросы