c# - 枢轴重叠 WP 8.1 通用应用程序中的其他元素(并自动更改边距)

标签 c# .net winrt-xaml windows-phone-8.1

以下 XAML 显示了 Windows Phone 8.1 通用应用页面的内容。这个想法是在一个枢轴的顶部有一个酒吧。但是枢轴与条重叠,而蓝色示例网格按预期工作。

<Grid>        
    <Grid.RowDefinitions>
        <RowDefinition Height="50" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <Grid Background="{StaticResource PhoneAccentBrush}" Height="50" />
    <Pivot Grid.Row="1" Background="Green" Width="200" HorizontalAlignment="Left" />
    <Grid Grid.Row="1" Background="Blue" Width="200" HorizontalAlignment="Right" />
</Grid>

生成的页面如下所示:

enter image description here

这个“负利润率”从何而来?

如何避免?

顺便说一句: 仅设置边距不是解决方案,因为它会引入其他问题,例如使用 SemanticZoom 控件时会跳转 GUI,我需要知道问题的根本原因才能解决它...

信息:Windows Phone Pivot 似乎会根据当前屏幕设置自动更改边距(显示/隐藏状态栏)。因此,如果您的应用程序在某些情况下更改了状态栏的状态,您最终将拥有一个跳跃/更改的枢轴控件。

最佳答案

我找到了一个解决方案并为 Pivot 控件创建了一个简单的附加属性。

附加属性可以这样使用:

<Pivot controls:PivotExtensions.DisableAutoMargin="True">
    <PivotItem Header="A">
        ...
    </PivotItem>
    <PivotItem Header="B">
        ...
    </PivotItem>
</Pivot>

可以在这里找到具有附加属性的类: http://mytoolkit.codeplex.com/SourceControl/latest#MyToolkit.Extended.WinRT/Controls/PivotExtensions.cs

缺点:您不能再覆盖模板,因为附加属性已经更改了模板...

关于c# - 枢轴重叠 WP 8.1 通用应用程序中的其他元素(并自动更改边距),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24752412/

相关文章:

c# - 如何在 Entity Framework 中完全锁定一行

c# - ASP.NET 成员资格 - 需要将自定义字段添加到管理屏幕

.net - 如何在 .NET 单选按钮中获取 DoubleClick 事件?

c# - "Program Files"文件夹下的文件写权限问题

c# - 在 UWP 中将图钉添加到 MapControl

xaml 根据另一种颜色定义颜色

java - Java和C#正则表达式无法产生相同的结果

.net - 如何使用 msbuild 生成 specflow feature.cs 文件?

c# - 如何从 Windows Phone 8.1 RT 的导航缓存中删除特定页面?

c# - 在 C# 中将错误消息与错误代码相关联的最佳方法是什么?