C# WPF 通知弹出用户控件作为 DLL

问题描述 投票:0回答:1

我正在构建一个通知弹出窗口以在我的项目中使用。 (C# WPF .NET)。

我已经构建了一个用户控件,我想将其显示在右上角,非常像 SweetAlert2,但对于我的 c# 项目。

但我无法做到这一点,因为我不知道如何在没有 contentControl 或类似的东西来保存其内容的情况下显示它。

这是我要显示的通知用户控件:

<Border CornerRadius="10" Background="#A5DC86" Margin="10">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <materialDesign:PackIcon Kind="CheckCircleOutline" Foreground="{StaticResource MaterialDesignPaper}" VerticalAlignment="Center" Width="30" Height="30" Margin="10,0,0,0"/>
        <TextBlock  Grid.Column="1" Margin="10" x:Name="messageText" VerticalAlignment="Center" TextWrapping="Wrap" HorizontalAlignment="Left"
                    Foreground="{StaticResource MaterialDesignPaper}" FontWeight="SemiBold" FontSize="14" />
    </Grid>
</Border>

我将其显示在我的窗口 xaml 中进行测试

 <local:NotificationControl x:Name="notificationControl" Visibility="Collapsed"/>

没有xaml我该怎么做?因为它应该是一个 DLL 之类的东西

Notification.ShowPopup("my notif");
还使用 z-index 将其放在其他内容之上

c# wpf notifications popup
1个回答
0
投票

没有xaml我该怎么做?

以编程方式创建控件的实例,然后以某种方式将其添加到窗口。我猜您想将其添加为窗口根面板的子级(

this
指的是下面示例中的窗口):

NotificationControl ctrl = new NotificationControl();
Panel root = this.Content as Panel;
if (root != null)
    root.Children.Add(ctrl);
else
    this.Content = ctrl;
© www.soinside.com 2019 - 2024. All rights reserved.