簡體   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