[英]WPF DevComponents Dock Control will not fill screen
我正在使用DevComponents第三方控件創建一個屏幕,該屏幕具有以三行組織的多個停靠組件,最后一行有三列。 我已經成功創建了此布局,但是我無法弄清楚如何將DockSite的高度擴展到屏幕的邊界。
我在下面發布了XAML:
<UserControl x:Class="Docking_UC"
xmlns:my="clr-namespace:DevComponents.WpfDock;assembly=DevComponents.WpfDock"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="714" Width="1057">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="83"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Grid HorizontalAlignment="Stretch" Margin="0" Name="bodyGrid" Width="Auto" Grid.Row="0">
<Grid.RowDefinitions>
<RowDefinition Height="71" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<WrapPanel>
<Label>Dock Test #</Label>
<Label>1</Label>
</WrapPanel>
<Rectangle Height="12" Name="menuRectangle" Stroke="Black" VerticalAlignment="Bottom" Fill="SteelBlue" Opacity="0.25" Grid.Row="1" />
</Grid>
<my:DockSite Background="Transparent" Name="dashDockSiteAll" Grid.Row="1">
<my:DockSite.SplitPanels>
<my:SplitPanel Orientation="Vertical" my:DockSite.Dock="Top" my:DockSite.DockSize="714">
<my:SplitPanel Orientation="Vertical">
<my:DockWindowGroup my:SplitPanel.RelativeSize="50,135">
<my:DockWindow Header="Top" Name="dockWindowTop">
<Label>2</Label>
</my:DockWindow>
</my:DockWindowGroup>
<my:DockWindowGroup my:SplitPanel.RelativeSize="50,220">
<my:DockWindow Header="MidWindowTab1" Name="dockWindowMid1">
<Label>3</Label>
</my:DockWindow>
<my:DockWindow Header="MidWindowTab2" Name="dockWindowMid2">
<Label>4</Label>
</my:DockWindow>
</my:DockWindowGroup>
<my:DockWindowGroup my:SplitPanel.RelativeSize="50,150">
<my:DockWindow Header="Bottom" Name="dockWindowBottom">
<my:SplitPanel Orientation="Horizontal" my:SplitPanel.RelativeSize="50,150">
<my:DockWindowGroup>
<my:DockWindow Header="BottomLeft">
<Label>5</Label>
</my:DockWindow>
</my:DockWindowGroup>
<my:DockWindowGroup>
<my:DockWindow Header="BottomMid">
<Label>6</Label>
</my:DockWindow>
</my:DockWindowGroup>
<my:DockWindowGroup>
<my:DockWindow Header="BottomRight">
<Label>7</Label>
</my:DockWindow>
</my:DockWindowGroup>
</my:SplitPanel>
</my:DockWindow>
</my:DockWindowGroup>
</my:SplitPanel>
</my:SplitPanel>
</my:DockSite.SplitPanels>
</my:DockSite>
</Grid>
我試過刪除DockSite.Site屬性,但是DockSite默認為Left Docked。 同樣,將一個窗口停靠在Bottom站點之后,在光標高度附近仍然有一個空白區域,我無法刪除該區域。
好的,所以經過一天的故障排除/與控件打交道之后,我終於發現了我一直在努力實現的目標。 我在標簽之外的DockSite中添加了my:SplitPanel,顯然,此SplitPanel將自動停靠到其余的空白區域。
更正后的代碼在下面,而附加項則在選項卡上過分了:
<UserControl x:Class="Docking_UC" xmlns:my="clr-namespace:DevComponents.WpfDock assembly=DevComponents.WpfDock" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="714" Width="1057">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="83"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Grid HorizontalAlignment="Stretch" Margin="0" Name="bodyGrid" Width="Auto" Grid.Row="0">
<Grid.RowDefinitions>
<RowDefinition Height="71" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<WrapPanel>
<Label>Dock Test #</Label>
<Label>1</Label>
</WrapPanel>
<Rectangle Height="12" Name="menuRectangle" Stroke="Black" VerticalAlignment="Bottom" Fill="SteelBlue" Opacity="0.25" Grid.Row="1" />
</Grid>
<my:DockSite Background="Transparent" Name="dashDockSiteAll" Grid.Row="1">
<my:DockSite.SplitPanels>
<my:SplitPanel Orientation="Vertical" my:DockSite.Dock="Top" my:DockSite.DockSize="714">
<my:SplitPanel Orientation="Vertical">
<my:DockWindowGroup my:SplitPanel.RelativeSize="50,135">
<my:DockWindow Header="Top" Name="dockWindowTop">
<Label>2</Label>
</my:DockWindow>
</my:DockWindowGroup>
<my:DockWindowGroup my:SplitPanel.RelativeSize="50,220">
<my:DockWindow Header="MidWindowTab1" Name="dockWindowMid1">
<Label>3</Label>
</my:DockWindow>
<my:DockWindow Header="MidWindowTab2" Name="dockWindowMid2">
<Label>4</Label>
</my:DockWindow>
</my:DockWindowGroup>
</my:SplitPanel>
</my:SplitPanel>
</my:DockSite.SplitPanels>
<my:SplitPanel Orientation="Horizontal" my:DockSite.DockSize="100">
<my:SplitPanel Orientation="Horizontal" my:SplitPanel.RelativeSize="50,100">
<my:DockWindowGroup>
<my:DockWindow Header="BottomLeft">
<Label>5</Label>
</my:DockWindow>
</my:DockWindowGroup>
<my:DockWindowGroup>
<my:DockWindow Header="BottomMid">
<Label>6</Label>
</my:DockWindow>
</my:DockWindowGroup>
<my:DockWindowGroup>
<my:DockWindow Header="BottomRight">
<Label>7</Label>
</my:DockWindow>
</my:DockWindowGroup>
</my:SplitPanel>
</my:SplitPanel>
</my:DockSite>
</Grid>
希望這對其他遇到相同問題的人有所幫助。
另外,如果有足夠信譽的人都讀過這篇文章,請您添加一個DevComponents標簽嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.