由于我使用由 prism 模块的导出视图填充的 PRISM 区域,因此我现在这样做:
public static void AddLabelToHeaderRegion(string HeaderName, IRegionManager regionManager)
{
Label headerLabel = new Label
{
Content = HeaderName,
FontWeight = System.Windows.FontWeights.SemiBold,
Background = (System.Windows.Media.Brush)Application.Current.Resources["DetailHeaderBackground"],
Padding = new Thickness(30, 3, 0, 3),
BorderThickness = new Thickness(0),
Margin = new Thickness(0)
};
Grid.SetColumn(headerLabel, 2);
Grid.SetRow(headerLabel, 0);
Grid.SetColumnSpan(headerLabel, 3);
IRegion headerBarRegion = regionManager.Regions[RegionNames.HeaderBarRegion];
if (headerBarRegion != null)
{
foreach (var item in headerBarRegion.ActiveViews)
{
headerBarRegion.Remove(item);
}
headerBarRegion.Add(headerLabel);
}
}
我可以在通过 MEF 导入当前区域管理器的任何地方使用它。