C# 通过扩展用户控件,使PRISM应用程序中的区域全屏显示
我正在使用PRISM库创建应用程序。目前我只有一个地区。在这个区域内,我在视图中放置了一个用户控件(如下所示)。只是一个带有属性网格的菜单和一个显示数据的列表 我的用户控件: 默认情况下,我的主窗口为全屏。当我运行我的应用程序时,在我的用户控件下面有一些重新生成的空格。 问题: 如何扩展用户控件以填充所有可用空间?如下图所示 我所做的: -我的用户控件容器当前是DockPanel,我尝试将其放到网格和其他控件中 -删除用户控件大小(宽度和高度) -在shell.xaml中使用viewbox(它会破坏一切) -将用户控件放到shell.xaml中的不同容器中 目前shell.xaml是我的“主窗口”,我只有带有用户控件的窗口标记 我在堆栈溢出上发现了类似的问题,但没有任何帮助 ---更新--- 这是我的用户控制代码的示例:C# 通过扩展用户控件,使PRISM应用程序中的区域全屏显示,c#,wpf,C#,Wpf,我正在使用PRISM库创建应用程序。目前我只有一个地区。在这个区域内,我在视图中放置了一个用户控件(如下所示)。只是一个带有属性网格的菜单和一个显示数据的列表 我的用户控件: 默认情况下,我的主窗口为全屏。当我运行我的应用程序时,在我的用户控件下面有一些重新生成的空格。 问题: 如何扩展用户控件以填充所有可用空间?如下图所示 我所做的: -我的用户控件容器当前是DockPanel,我尝试将其放到网格和其他控件中 -删除用户控件大小(宽度和高度) -在shell.xaml中使用viewbox
<UserControl x:Class="NewPrj.View.FullScreenTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d">
<DockPanel Background="Blue" LastChildFill="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Menu DockPanel.Dock="Top">
<MenuItem Header="_New"/>
<MenuItem Header="_Something"/>
</Menu>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="350" />
</Grid.ColumnDefinitions>
<xctk:PropertyGrid Grid.Column = "1"
>
</xctk:PropertyGrid>
</Grid>
</DockPanel>
这是我的shell.xaml窗口
<Window x:Class="NewPrj.Shell"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:NewPrj"
xmlns:prism="http://www.codeplex.com/prism"
mc:Ignorable="d"
WindowState="Maximized"
Title="New Prj" MinHeight="600" MinWidth="800">
<Grid>
<ItemsControl Name="MainRegion" prism:RegionManager.RegionName="MainRegion" />
</Grid>
这就是实际结果:
正如我之前所说,有很多相关的主题,但它不起作用。原因:
这不是完全拉伸的,因为我使用ItemsControl,它使用堆栈面板作为默认数据模板
解决方案:
更改ItemsControl的数据模板或改用用户控件
<UserControl Name="MainRegion" prism:RegionManager.RegionName="MainRegion"/>
请发布窗口和用户控件的XAML标记。将用户控件放在窗口内的网格中。和MVVM、Prism等完全无关。在我提出这个问题之前,我将用户控件放在窗口的网格中。问题是,这不起作用。我还尝试为网格创建一些行,您可以在相关主题中阅读。明天我会发布我的代码。谢谢,在我找到你的帖子之前,这很烦人。