wpf - 紧密围绕用户控制的窗口

时间:2010-03-16 17:35:01

标签: wpf wpf-controls

我有一个用户控件,我正在动态加载到一个Window中 - 我想设置Window以使它没有大小然后我认为窗口根据UserControl相应地调整大小。但它不是 - 有人可以帮忙吗?

我做了一个非常基本的例子 - 我已经删除了动态位,只是将一个UserControl放在一个Window中。为了让UserControl周围的窗口紧张,我需要做些什么?

谢谢,

安迪

<UserControl x:Class="WpfApplication1.UserControl1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="300" Width="300" Background="LightBlue">
    <Grid>
    </Grid>
</UserControl>


<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:WpfApplication1="clr-namespace:WpfApplication1" Title="Window1"  >
    <Grid>
        <WpfApplication1:UserControl1>
        </WpfApplication1:UserControl1>
    </Grid>
</Window>

4 个答案:

答案 0 :(得分:6)

尝试在您的窗口上将 SizeToContent 设置为 WidthAndHeight

请参阅MSDN Page

答案 1 :(得分:0)

尝试将Width和Height设置为Auto,或设置SizeToContent = WidthAndHeight。

答案 2 :(得分:0)

一旦知道控件的大小,就必须更新窗口的大小。我不确定是否有任何方法强制窗口自动调整大小,除非你有代码这样做。

检查this out以了解您需要知道的所有内容以及其他内容。

答案 3 :(得分:0)

不确定这是否有帮助,但我首先要制作Window:

Height="Auto" Width="Auto"

如果单独这样做,我会添加一个网格行和列

<Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"  />
</Grid.ColumnDefinitions>

然后我会设置

<WpfApplication1:UserControl1 Grid.Row="0" Grid.Column="0" />

不是100%肯定这是否会起作用,但值得一试,因为这就是我在我身边所做的事情并且有效。