【问题标题】:UWP settings of InAppNotificationInAppNotification 的 UWP 设置
【发布时间】:2020-04-29 22:31:48
【问题描述】:

帮我一个人。我尝试使用 InAppNotification 向用户发送消息,但我做错了。

当我单击按钮消息时,我会看到该消息,但它是透明的或在后台,我不知道如何将 DataGrid 带到前面。 看图。 Wrong InAppNotification

<Page
    x:Class="ComboBoxColumnBorderColor.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ComboBoxColumnBorderColor"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:MSControls="using:Microsoft.Toolkit.Uwp.UI.Controls"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto"></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>

        <Button Content="Click me"
                Click="Button_Click"
                Margin="10">
        </Button>

        <MSControls:InAppNotification Grid.Row="1"
                                      x:Name="MessageForUser"
                                      HorizontalAlignment="Right"
                                      Background="Green"
                                      BorderBrush="Red">

        </MSControls:InAppNotification>


        <MSControls:DataGrid Grid.Row="1"
                             ItemsSource="{Binding Companies}"
                             x:Name="MyDataGrid"
                             AutoGenerateColumns="False" 
                             ScrollViewer.HorizontalScrollMode="Enabled"
                             RowHeight="60">

            <MSControls:DataGrid.Columns>

                <MSControls:DataGridTextColumn Header="Company Name" 
                                               Binding="{Binding Name}"/>

                <MSControls:DataGridTextColumn Header="Company Name" 
                                               Binding="{Binding Description}"/>

                <MSControls:DataGridTextColumn Header="Company Name" 
                                               Binding="{Binding Address}"/>

            </MSControls:DataGrid.Columns>

        </MSControls:DataGrid>
    </Grid>
</Page>

public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();

            DataContext = new MainPageVM();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MessageForUser.Show("Hello User!", 3000);
        }
    }

【问题讨论】:

    标签: c# uwp


    【解决方案1】:

    你应该把 InAppNotification 放在 XAML 的最后

    <Page
        x:Class="ComboBoxColumnBorderColor.MainPage"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:ComboBoxColumnBorderColor"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:MSControls="using:Microsoft.Toolkit.Uwp.UI.Controls"
        mc:Ignorable="d"
        Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="auto"></RowDefinition>
                <RowDefinition></RowDefinition>
            </Grid.RowDefinitions>
    
            <Button Content="Click me"
                    Click="Button_Click"
                    Margin="10">
            </Button>
    
    
    
    
            <MSControls:DataGrid Grid.Row="1"
                                 ItemsSource="{Binding Companies}"
                                 x:Name="MyDataGrid"
                                 AutoGenerateColumns="False" 
                                 ScrollViewer.HorizontalScrollMode="Enabled"
                                 RowHeight="60">
    
                <MSControls:DataGrid.Columns>
    
                    <MSControls:DataGridTextColumn Header="Company Name" 
                                                   Binding="{Binding Name}"/>
    
                    <MSControls:DataGridTextColumn Header="Company Name" 
                                                   Binding="{Binding Description}"/>
    
                    <MSControls:DataGridTextColumn Header="Company Name" 
                                                   Binding="{Binding Address}"/>
    
                </MSControls:DataGrid.Columns>
    
            </MSControls:DataGrid>
    
            <MSControls:InAppNotification Grid.Row="1"
                                          x:Name="MessageForUser"
                                          HorizontalAlignment="Right"
                                          Background="Green"
                                          BorderBrush="Red">
    
            </MSControls:InAppNotification>
        </Grid>
    </Page>
    

    【讨论】:

    • 是的,xaml 布局作为层,您编写的第一个元素位于底部。最后一个元素位于最上面。我已经在你的另一个问题中发布了一个 repo。
    猜你喜欢
    • 2019-04-30
    • 1970-01-01
    • 2018-06-22
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 2019-05-25
    相关资源
    最近更新 更多