我正在构建一个通知弹出窗口以在我的项目中使用。 (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 将其放在其他内容之上
没有xaml我该怎么做?
以编程方式创建控件的实例,然后以某种方式将其添加到窗口。我猜您想将其添加为窗口根面板的子级(
this
指的是下面示例中的窗口):
NotificationControl ctrl = new NotificationControl();
Panel root = this.Content as Panel;
if (root != null)
root.Children.Add(ctrl);
else
this.Content = ctrl;