我正在使用PRISM库创建应用程序。目前我只有一个地区。在这个区域内,我将一个用户控件放在我的视图中(如下所示)。只是一个带有属性网格的菜单和一个显示数据的列表。
默认情况下,我的主窗口是全屏。当我运行我的应用程序时,在我的用户控件下面有一些重建空白区域。
问题: 我如何伸展我的用户控件以填充所有可用空间?如下图所示
我做了什么: - 我的用户控件容器当前是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}}
正如我之前所说,有许多相关主题,但它不起作用。
答案 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.
});
}
}