通过拉伸用户控件在PRISM应用程序中使区域全屏显示

时间:2017-03-07 16:40:54

标签: c# wpf

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

我的用户控件:  enter image description here

默认情况下,我的主窗口是全屏。当我运行我的应用程序时,在我的用户控件下面有一些重建空白区域。 enter image description here

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

enter image description here

我做了什么: - 我的用户控件容器当前是DockPanel我试过把它放到网格和其他控件 - 删除用户控件大小(宽度和高度) - 在shell.xaml中使用viewbox(它会破坏所有东西) - 将用户控件放在shell.xaml

中的不同cotainers中

目前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>

这是实际结果:

{{3}}

正如我之前所说,有许多相关主题,但它不起作用。

1 个答案:

答案 0 :(得分:1)

原因:

由于我使用 ItemsControl 使用堆栈面板作为默认数据模板,因此未完全展开

解决方案:

更改ItemsControl的数据模板或改为使用用户控件

@Component({
  ...
})
export class DashboardComponent implements OnInit {

  constructor(
    private patientActions: PatientActions,
    private store: Store<AppState>,
  ) {}

  ngOnInit(): void {
    this.store.dispatch(this.patientActions.loadPatient());

    this.store.select<PatientState>('patients').subscribe(patientState => {
        console.log('patientState', patientState);
        // Works as expected.
    });
  }

}

I found answer here