C# 通过扩展用户控件,使PRISM应用程序中的区域全屏显示

C# 通过扩展用户控件,使PRISM应用程序中的区域全屏显示,c#,wpf,C#,Wpf,我正在使用PRISM库创建应用程序。目前我只有一个地区。在这个区域内,我在视图中放置了一个用户控件(如下所示)。只是一个带有属性网格的菜单和一个显示数据的列表 我的用户控件: 默认情况下,我的主窗口为全屏。当我运行我的应用程序时,在我的用户控件下面有一些重新生成的空格。 问题: 如何扩展用户控件以填充所有可用空间?如下图所示 我所做的: -我的用户控件容器当前是DockPanel,我尝试将其放到网格和其他控件中 -删除用户控件大小(宽度和高度) -在shell.xaml中使用viewbox

我正在使用PRISM库创建应用程序。目前我只有一个地区。在这个区域内,我在视图中放置了一个用户控件(如下所示)。只是一个带有属性网格的菜单和一个显示数据的列表

我的用户控件:

默认情况下,我的主窗口为全屏。当我运行我的应用程序时,在我的用户控件下面有一些重新生成的空格。

问题: 如何扩展用户控件以填充所有可用空间?如下图所示

我所做的: -我的用户控件容器当前是DockPanel,我尝试将其放到网格和其他控件中 -删除用户控件大小(宽度和高度) -在shell.xaml中使用viewbox(它会破坏一切) -将用户控件放到shell.xaml中的不同容器中

目前shell.xaml是我的“主窗口”,我只有带有用户控件的窗口标记

我在堆栈溢出上发现了类似的问题,但没有任何帮助

---更新--- 这是我的用户控制代码的示例:

<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等完全无关。在我提出这个问题之前,我将用户控件放在窗口的网格中。问题是,这不起作用。我还尝试为网格创建一些行,您可以在相关主题中阅读。明天我会发布我的代码。谢谢,在我找到你的帖子之前,这很烦人。