我使用Hardcodet WPF NotifyIcon来显示一些事件的自定义气球。
如果我在MainWindow的xaml中创建TaskbarIcon
,那么我的气球将放置在xaml附近:
的数据
但是当我在资源文件(xaml)或应用程序类中创建TaskbarIcon
时,我的气球会放在xaml上:
的
为什么这些情况下的行为存在差异,以及如何控制自定义引出序号的位置?
EDIT:我使用下一个代码来测试它:
(App.xaml):
<Application x:Class="TestBalloon.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tb="http://www.hardcodet.net/taskbar"
StartupUri="MainWindow.xaml">
<Application.Resources>
<tb:TaskbarIcon x:Key="TrayIcon" ToolTipText="Created From Resources" />
</Application.Resources>
</Application>
字符串
(App.xaml.cs):
public partial class App : Application
{
public TaskbarIcon AppTrayIcon;
protected override void OnStartup(StartupEventArgs e)
{
AppTrayIcon = (TaskbarIcon)FindResource("TrayIcon");
}
}
型
(MainWindow.xaml):
<Window x:Class="TestBalloon.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tb="http://www.hardcodet.net/taskbar"
Title="MainWindow" Height="350" Width="525">
<Grid>
<tb:TaskbarIcon x:Name="MainWindowTrayIcon" ToolTipText="Created in MainWindow" />
<Button x:Name="MyButton"
Content="ClickMe"
Margin="10,10,10,10"
Click="MyButton_OnClick"/>
</Grid>
</Window>
型
(MainWindow.xaml.cs):
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void MyButton_OnClick(object sender, RoutedEventArgs e)
{
FancyBalloon bal = new FancyBalloon(); // From Hardcodet WPF NotifyIcon Tutorial
// To use TaskbarItem created in MainWindow.xaml
//MainWindowTrayIcon.ShowCustomBalloon(bal, PopupAnimation.Slide, null);
// To use TaskbarItem created in App.xaml
((App)Application.Current).AppTrayIcon.ShowCustomBalloon(bal, PopupAnimation.Slide, null);
}
}
型
1条答案
按热度按时间lqfhib0f1#
我知道,我是考古学家,但是嘿,问题还没有得到回答!
在我的安装程序上进行了测试,该安装程序为Windows 10 build 19045.3570,在**.NET Framework 4.8和.NET6中均安装了WPF应用程序**,并安装了**Hardcodet.NotifyIcon.Wpf v.1.1.0*。
问题不再存在,在我的例子中,调用在
App.xaml
或MainWindow.xaml
中创建的TaskBatItem
,FancyBalloon
被正确显示。顺便说一句,这里缺少
FancyBalloon UserControl
实现(不是我的代码,取自https://www.codeproject.com/Articles/36468/WPF-NotifyIcon-2)。界面
字符串
代码背后
型