2014-09-30 54 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