以下是我的代码。
popupTargetPlacementWindow.LocationChanged += delegate(object obj, EventArgs args)
{
if (ErrorPopUp.IsOpen == true)
{
ErrorPopUp.IsOpen = false;
ErrorPopUp.IsOpen = true;
}
};
popupTargetPlacementWindow.Deactivated += delegate(object obj, EventArgs args)
{
ErrorPopUp.IsOpen = false;
};
popupTargetPlacementWindow.Activated += delegate(object obj, EventArgs args)
{
ErrorPopUp.IsOpen = true;
};
此代码的问题是当我使用最小化按钮来最小化应用程序时它工作正常(wpf弹出控件不显示)但是当我单击任务栏应用程序图标以最小化应用程序时它会产生问题(wpf弹出窗口)控件仍显示在桌面窗口的左上角)。我正在使用Window.ResizeMode = ResizeMode.CanMinimize
标志进行申请。
我发现的问题是Activated事件在点击任务栏应用程序图标时被触发,因此设置ErrorPopUp.IsOpen = true;因此,单击最小化按钮时,wpf弹出窗口不会消失,因此不会触发Activated事件,因此会消失wpf弹出窗口。
在这方面的任何帮助,如何使这个代码工作,以便点击任务栏应用程序图标也消失了wpf弹出窗口将是非常有帮助的..
下面是我的wpf弹出控制代码。
<Image Name="IconInfoTooltip" Source="{Binding TooltipImageSource}" Height="20" Width="20" Margin="575,70,25,325" RenderTransformOrigin="0,0.7" /Image>
<Popup Name="ErrorPopUp" IsOpen="{Binding IsErrorPopUpOpen}" AllowsTransparency="True" Width="320" Height="Auto" HorizontalAlignment="Right" HorizontalOffset="-280" VerticalOffset="-2" PlacementTarget="{Binding ElementName=IconInfoTooltip}" Placement="Top">
<Grid x:Name="grid" Height="Auto" Width="Auto" Background="Transparent">
<Border BorderBrush="#ffc64a" BorderThickness="1" Background="LightYellow" CornerRadius="5" Padding="5">
<StackPanel>
<StackPanel>
<BulletDecorator>
<BulletDecorator.Bullet>
<Ellipse Height="6" Width="6" Fill="Black"/>
</BulletDecorator.Bullet>
<TextBlock Text="{Binding Message3}" Foreground="Black" TextWrapping="Wrap" Margin="5,0,0,0"/>
</BulletDecorator>
</StackPanel>
<StackPanel>
<BulletDecorator>
<BulletDecorator.Bullet>
<Ellipse Height="6" Width="6" Fill="Black"/>
</BulletDecorator.Bullet>
<TextBlock Text="{Binding Message2}" Foreground="Black" TextWrapping="Wrap" Margin="5,0,0,0"/>
</BulletDecorator>
</StackPanel>
<StackPanel>
<BulletDecorator>
<BulletDecorator.Bullet>
<Ellipse Height="6" Width="6" Fill="Black"/>
</BulletDecorator.Bullet>
<TextBlock Text="{Binding Message1}" TextWrapping="Wrap" Margin="5,0,0,0"/>
</BulletDecorator>
</StackPanel>
</StackPanel>
</Border>