2014-09-30 55 views
0

我对WPF完全陌生,必须为我的工作做一些工作。我有一个包含3个元素主机的表单,每个主机都有自己的子控件。我需要子控件调整窗体的大小,以便窗体可以长大和缩小。使用窗体调整大小调整元素主机的子内容

只有元素主机自己似乎有锚定属性,这是我明白我需要操纵,以实现这一点。我怎样才能让子控件调整大小以及元素主机,还是我这样做完全错了? 任何帮助将是伟大的。

我已经测试过一个标准的文本框控件,并且将它的Anchor属性设置为Top,Left,Bottom可以正常工作。我不明白为什么如果你想项目因父元素来调整大小,你必须记住,ontrols隐式继承父母拉伸行为时,它的大小不为元素主机内容

<UserControl x:Class="MyControls.ucEventViewerOptions" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/,arkup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" 
     d:DesignHeight="297" d:DesignWidth="128" Loaded="UserControl_Loaded"> 
    <Grid Width="96" Height="288"> 
     <DataGrid AutoGenerateColumns="False" Height="288" HorizontalAlignment="Left" Name="dgEventViewerOptions" VerticalAlignment="Top" Width="96" SelectionChanged="dgEventViewOptions_SelectionChanged" /> 
    </Grid> 
</UserControl> 
+0

请发布一个非工作的XAML示例,以便我们可以指出什么是错误的。 – 2014-09-30 09:18:46

+0

完成,让我知道你是否需要其他东西 – user2248441 2014-09-30 09:38:25

回答

1

在WPF中,这种类型的行为通常是由HorizontalAlignmentVerticalAlignment特性造成的。使用这些属性会将它们设置为其默认值"Stretch",并允许控件相对于其父容器调整大小。但是,只有在控件未分配固定大小时才可能。

在你的情况,你可以简单地ommit这些属性:

<UserControl x:Class="MyControls.ucEventViewerOptions" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/,arkup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" 
     d:DesignHeight="297" d:DesignWidth="128" Loaded="UserControl_Loaded"> 
    <Grid> 
     <DataGrid AutoGenerateColumns="False" Name="dgEventViewerOptions" SelectionChanged="dgEventViewOptions_SelectionChanged" /> 
    </Grid> 
</UserControl> 

除非你希望他们有一个固定的高度或宽度,当然。

+0

这解决了这个问题,谢谢你一堆 – user2248441 2014-09-30 10:04:54

1

工作未明确设置。因此,要解决您的问题,您需要删除设置WidthHeight明确:

<Grid> 
    <DataGrid AutoGenerateColumns="False" Name="dgEventViewerOptions" SelectionChanged="dgEventViewOptions_SelectionChanged" /> 
</Grid> 
+0

非常感谢,现在全部排序 – user2248441 2014-09-30 10:05:46