繁体   English   中英

UWP 自定义标题栏按钮无法单击

[英]UWP Custom TitleBar button could not be clicked

我有一个自定义 TitleBar,其视图已扩展到标题栏,这意味着我已经这样做了:

Windows.ApplicationModel.Core.CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true;

您可以从下图中看到,它只是一个后退按钮(当您导航到其他页面时可见)和一个TextBlock 但是,我无法单击该按钮。 这是为什么? 我已将标题栏放在NavigationView上方。 而且我也找不到该按钮的Background 我已将其设置为透明,它应该显示它下面的颜色,但它没有。 我也尝试过改变它周围元素的背景,但我的努力没有奏效。

我发布的图像只是 window 窄时的示例,当 window 展开时仍然是相同的情况。

这是该主页的 XAML 的结构,源代码在这里

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <NavigationView
        x:Name="MainNavigationView"
        Grid.Row="1"
        IsBackButtonVisible="Collapsed"
        IsBackEnabled="True"
        Style="{StaticResource MainNavigationViewStyle}"
        TabNavigation="Cycle">
        <Frame
            x:Name="NaviFrame"
            IsNavigationStackEnabled="True"
            Navigated="NaviFrame_Navigated" />
    </NavigationView>
    <Grid
        x:Name="AppTitleBar"
        Height="32"
        HorizontalAlignment="Stretch"
        VerticalAlignment="Stretch"
        Background="Transparent">
        <Border
            x:Name="AppTitleBorder"
            Width="{x:Bind MainNavigationView.OpenPaneLength}"
            HorizontalAlignment="Left"
            VerticalAlignment="Stretch"
            Background="Transparent" />
        <StackPanel Orientation="Horizontal">
            <Button
                x:Name="BackButton"
                Background="Transparent"
                Click="BackButton_Click"
                Style="{StaticResource BackButtonStyle}"
                Visibility="Collapsed" />
            <TextBlock
                x:Name="AppTitle"
                Height="{x:Bind AppTitleBar.Height, Mode=OneWay}"
                Padding="10,8"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"
                Style="{StaticResource CaptionTextBlockStyle}"
                Text="{x:Bind appmodel:Package.Current.DisplayName}"
                Visibility="Collapsed" />
        </StackPanel>
    </Grid>
    <Button
        x:Name="FakeTogglePaneButton"
        Grid.Row="1"
        Background="{StaticResource MinimalTitleBarColor}"
        Click="FakeTogglePaneButton_Click"
        Style="{ThemeResource PaneToggleButtonStyle}"
        Visibility="Collapsed" />
    <local:MediaControl
        x:Name="MainMediaControl"
        Grid.Row="2"
        Mode="Main" />
</Grid>

在此处输入图像描述

Page_Loaded方法中,您已将AppTitleBar Grid 设置为应用程序的标题栏。 那就是问题所在。 您设置为应用程序标题栏的FrameworkElement应该是无响应的,因为通常您通过拖动标题栏来移动应用程序 window。

在响应部分下方放置一个RectangleBorder ,并将该RectangleBorder设置为标题栏。

您可以查看此博客以获取更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM