我有这个奇怪的 wpf 问题。我有一个带有图像的窗口(全屏),如下所示:
我在这个窗口上用 Showdialog 打开一个新窗口,它不是全屏的(看起来像一个弹出窗口,但它是一个窗口)。代码是这样的:
Window next; next = new PasswordVerification();
next.Owner = this;
next.ShowDialog();
在打开的窗口中,我使用它来使“弹出窗口”居中:
this.Left = this.Owner.Left + (this.Owner.Width - this.ActualWidth) / 2;
this.Top = this.Owner.Top + (this.Owner.Height - this.ActualHeight) / 2;
this.Topmost = true;
我得到了这样的东西(我裁剪了它,窗口稍微大了一点):
文本块的定义如下:
<Rectangle Name="errorBorder" Fill="#34FF0000" FlowDirection="RightToLeft" RadiusX="13" RadiusY="13" Stroke="#FFB80005" Visibility="Visible" Margin="43,195,78,203" />
<TextBlock Name="error" Text="TextBlock" Margin="49,195,91,205" FontSize="20" FlowDirection="RightToLeft" FontWeight="Bold" Foreground="#FFB80000" Visibility="Visible" />
现在我有一个按钮,它可以做到这一点:
error.Text = "blabla";
但是我得到了这个奇怪的东西,而不是我所期望的(文本会改变): 如你所见,后窗的图像被轻微显示,而不是我的文本块!
这是怎么回事?请帮忙!
弹出 XAML:
<Window ... Width="1000" Height="700" AllowsTransparency="True"
WindowStyle="None"
Background="#00000000"/>
<Border Style="{StaticResource SmallScreenBorderStyle}" CornerRadius="23" Padding="2" Margin="153.66,117.992,153.661,117.992" d:LayoutOverrides="Width, Height">
<!-- Use a VisualBrush of 'mask' as the opacity mask -->
<Grid.OpacityMask>
<VisualBrush Visual="{Binding ElementName=mask}"/>
</Grid.OpacityMask>
<!-- Rounded mask (stretches to fill Grid) to make grid rounded corners -->
<Border x:Name="mask" CornerRadius="20" Margin="2,5,-1,-5" d:LayoutOverrides="GridBox" Style="{StaticResource MaskBorderStyle}"/>