wpf - окно для жесткого контроля пользователя - PullRequest
1 голос
/ 16 марта 2010

У меня есть пользовательский элемент управления, который я загружаю в окно динамически - я хотел настроить окно так, чтобы оно не имело размера, а затем я подумал, что окно соответствующим образом изменит размер в зависимости от UserControl. Однако это не может - кто-нибудь может помочь, пожалуйста?

Я сделал очень простой пример - я вырезал динамические биты и просто поместил UserControl в окно. Что мне нужно сделать, чтобы заставить окно быть плотным вокруг UserControl?

Спасибо

Andy

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

6 голосов
/ 16 марта 2010

Попробуйте установить SizeToContent в WidthAndHeight в вашем окне.

См. Страница MSDN

0 голосов
/ 16 марта 2010

Не уверен, поможет ли это, но я бы начал с создания окна:

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%, сработает ли это, но стоит попробовать, так как это то, что я делаю со своей стороны, и это работает.

0 голосов
/ 16 марта 2010

Как только вы узнаете размер элемента управления, вам нужно будет обновить размер окна. Я не уверен ни в каком способе принудительно изменить размер окна, если у вас нет кода, делающего это.

Проверьте это для всего, что вам нужно знать, плюс некоторые, чтобы сделать это.

0 голосов
/ 16 марта 2010

Попробуйте установить для параметра «Ширина и высота» значение «Авто» или параметр SizeToContent = WidthAndHeight.

...