我想在我的应用中设置页眉,图标或文字位于页面顶部50px高栏中心。可选择使用后退按钮。
出于这个原因,我在每个页面上使用UserControl,可以应用其中一种样式: PageHeaderStyle 或 PageHeaderBackStyle 。
我对其中一个的实现如下(我的App.xaml中的样式定义):
<Style x:Key="PageHeaderBaseStyle" TargetType="UserControl">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="Height" Value="50" />
<Setter Property="Width" Value="NaN" />
<Setter Property="Background" Value="{StaticResource CDColor}" />
</Style>
<Style x:Key="PageHeaderStyle" TargetType="UserControl" BasedOn="{StaticResource PageHeaderBaseStyle}">
<Setter Property="Content">
<Setter.Value>
<Grid Background="{StaticResource CDColor}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" DataContext="{StaticResource MainPageModel}">
<TextBlock Style="{StaticResource PageHeaderTextBlockStyle}" Text="{Binding Title}" Visibility="{Binding TitleVisibility}" />
<Image Style="{StaticResource PageHeaderIconStyle}" Source="{Binding Icon}" Visibility="{Binding IconVisibility}" />
</Grid>
</Setter.Value>
</Setter>
</Style>
应用应该是:
<UserControl Style="{StaticResource PageHeaderStyle}" />
现在我首先使用了“Template”并将DataTemplate应用于网格组件。但这没效果。然后我将其更改为直接设置UserControl的内容。这确实有效:构建设计器后显示页眉(在它只显示蓝色选区边框,但没有内容 - 它是透明的)。
但是一旦我开始在模拟器上调试应用程序,它就会消失,正在运行的应用程序只会显示一个空白点。
为什么会这样?我的意思是毕竟设计师已经展示了它,为什么它会消失呢?
仅供参考:我没有得到任何具有约束力的例外情况。它只是没有出现。
PS:我尝试在将网格背景设置为透明的同时在基本样式中设置背景。这也不起作用 - 只是一个空白点。
答案 0 :(得分:1)
解决了问题:最好的方法可能就是使用ContentControl。但是,使用 Content 属性不起作用。您必须使用 ContentTemplate 属性。使用那个确实很好。