如何在UWP中增加枢轴头高度?

时间:2015-07-15 09:13:46

标签: c# xaml

我目前在UWP(通用Windows平台)中创建应用程序。我正在使用枢轴控制,似乎我无法改变枢轴项目标题高度!它保持在68像素。我不知道应该修改哪个元素来改变它。

有关更好的说明,请参阅此图片(点击查看完整图像): unchanged pivot height

3 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,但不想使用后面的代码选项。

在Visual Studio中使用新的Live Tree Debugger我发现高度来自PivotHeaderItem默认样式。

如果您在适当的范围内添加该样式的副本,则可以使用Xaml设置高度,并且您不需要任何代码。

blogged关于sample项目。

答案 1 :(得分:4)

无需复制PivotHeaderItem的整个样式,您可以直接在您的Pivot模板中覆盖它。以下是您需要从Sample项目中修改的相关部分。

<!-- While used here to remove the spacing between header items, the PivotHeaderItem template can also be used to
display custom 'selected' visuals -->
<Style TargetType="PivotHeaderItem">
    <Setter Property="Height" Value="Auto" />
</Style>

答案 2 :(得分:0)

我认为我使用的模板与你相同。

所以,要修改高度我在枢轴样式上设置HeaderClipper上的Height(见下面的截图):

enter image description here

希望这会对你有所帮助。

更新:由于枢轴标题高度是静态的且不能超过小尺寸,我们必须在加载页面后手动设置高度

private void Page_Loaded(object sender, RoutedEventArgs e)
{
    foreach (PivotHeaderItem phItem in FindVisualChildren<PivotHeaderItem(mainPivot))
     {
         phItem.Height = 110;
    }
}

//Find all children
public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
{
    if (depObj != null)
    {
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
        {
            DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
            if (child != null && child is T)
            {
                yield return (T)child;
            }

            foreach (T childOfChild in FindVisualChildren<T>(child))
            {
                yield return childOfChild;
            }
        }
    }
}

参考:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/8c123ae3-2884-4d40-a5d1-0a22355fcd5f/uwpxamlhow-to-increase-pivot-header-height-in-uwp?forum=wpdevelop