根据内部内容定义窗口的大小

时间:2015-01-21 05:36:50

标签: c# xaml window

我有一个窗口,其中包含一些对象列表,显示为一些ItemsControl。 我想设置窗口:

  • 显示时ItemsControl的高度为2行
  • 窗口的宽度与行的宽度

你知道如何动态地做这件事吗?

<Border>
    <DockPanel LastChildFill="True" VerticalAlignment="Stretch"  HorizontalAlignment="Stretch">
        <WrapPanel DockPanel.Dock="Bottom" Grid.Row="1">
            <Button Content="Confirm" Command="{Binding ConfirmCommand}" />
            <Button Content="Cancel" Command="{Binding RejectCommand}" />
        </WrapPanel>
        <ScrollViewer VerticalScrollBarVisibility="Auto">
            <ItemsControl Grid.Row="0" ItemsSource="{Binding Path=Confirmations}" ItemTemplate="{StaticResource ConfirmationListTemplate}" HorizontalAlignment="Stretch" />
        </ScrollViewer>
    </DockPanel>
</Border>

提前谢谢!

2 个答案:

答案 0 :(得分:0)

在你的xaml中,输入控件的名称。例如,我在这里添加边框名称,

<Border x:Name="MainBorder">
     ....
</Border>

在你的代码背后,做这样的事情。

public Constructor()
{
    InitializeComponent();
    // You can set width height here,
    this.Width = MainBorder.ActualWidth;
    this. Height = MainBorder.ActualHeight;
}

答案 1 :(得分:0)

对于大多数控件,您可以在XAML中将其高度和宽度设置为“自动”,并且它的大小将适合其内容。

否则你可以尝试Faisal Hafeez解释的方法。