2015-10-06 73 views
0

好家伙我创建这个UserControlWPF自动宽度用户控件在ListBox中

<UserControl x:Class="Pass.ConexionControl" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"> 
    <Grid MinWidth="300"> 
     <Grid.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#FF8D9395"/> 
       <GradientStop Color="Gainsboro" Offset="1"/> 
      </LinearGradientBrush> 
     </Grid.Background> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="30"/> 
      <RowDefinition/> 
      <RowDefinition Height="30"/> 
      <RowDefinition/> 
      <RowDefinition Height="30"/> 
      <RowDefinition/> 
      <RowDefinition Height="30"/> 
      <RowDefinition/> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition/> 
      <ColumnDefinition Width="30" MinWidth="30" MaxWidth="30"/> 
     </Grid.ColumnDefinitions> 
     <Label Grid.Row="0" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Foreground="White"/> 
     <Label Grid.Row="2" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Foreground="White"/> 
     <Label Grid.Row="4" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Foreground="White"/> 
     <Label Grid.Row="6" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" Foreground="White"/> 

     <TextBox Grid.Row="1" ></TextBox> 
     <TextBox Grid.Row="3"></TextBox> 
     <TextBox Grid.Row="5"></TextBox> 
     <TextBox Grid.Row="7"></TextBox> 

     <Button Grid.Column="1" Grid.Row="1" Click="Button_Click"></Button> 
     <Button Grid.Column="1" Grid.Row="3" Click="Button_Click_1"></Button> 
     <Button Grid.Column="1" Grid.Row="5" Click="Button_Click_2"></Button> 
     <Button Grid.Column="1" Grid.Row="7" Click="Button_Click_3"></Button> 

    </Grid> 
</UserControl> 

控制在Visual Studio设计

正确显示当我尝试它Window的宽度添加到ListBox控制合同

我添加属性MinWidth 300,但是,这不是我的行为需要

MainWindow就像

<Window 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:Pass" x:Class="Pass.MainWindow" 
     Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded"> 
    <Grid> 
     <ListBox x:Name="listMain" Margin="5"> 
      <local:ConexionControl /> 
     </ListBox> 

    </Grid> 
</Window> 

在当窗口大小列表控件也将改变大小这种情况。

我需要的用户控件调整大小关于列表框

在我的用户控制我有1个格2列第一列必须rezise,第二必须保持大小。

我应该改变什么来完成这件事?

+0

设置你的ListBox宽度,然后在用户控件中设置你的第一列宽为'Auto',第二个为'*' –

+0

检查[this](http://stackoverflow.com/a/10244767/2470362) –

回答

0
<ListBox HorizontalContentAlignment="Stretch" Margin="0,0,164,86"> 
    <uc:UserControl1 /> 
</ListBox> 

于用户的控制:

<Grid> 
... 
<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*"/> 
    <ColumnDefinition Width="100" /> 
</Grid.ColumnDefinitions> 

现在,当你调整你的窗口都将相应扩张/收缩。