Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用showDialog打开的窗口,TextBlock显示在窗口下方,而不是文本_C#_Wpf_Textblock_Showdialog - Fatal编程技术网

C# 使用showDialog打开的窗口,TextBlock显示在窗口下方,而不是文本

C# 使用showDialog打开的窗口,TextBlock显示在窗口下方,而不是文本,c#,wpf,textblock,showdialog,C#,Wpf,Textblock,Showdialog,我有一个wierd wpf问题。 我有一个带有图像的窗口(全屏幕),如下所示: 我在这个窗口上用Showdialog打开一个新窗口,它不是全屏的(看起来像一个弹出窗口,但它是一个窗口)。代码如下所示: Window next; next = new PasswordVerification(); next.Owner = this; next.ShowDialog(); <Rectangle Name="errorBorder" Fill="#34FF

我有一个wierd wpf问题。 我有一个带有图像的窗口(全屏幕),如下所示:

我在这个窗口上用Showdialog打开一个新窗口,它不是全屏的(看起来像一个弹出窗口,但它是一个窗口)。代码如下所示:

 Window next;  next = new PasswordVerification();
 next.Owner = this;
  next.ShowDialog();
            <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" />
在打开的窗口中,我使用此选项将“弹出窗口”居中:

我得到了这样的东西(我裁剪了它,窗口稍微大一些):

其中textblock的定义如下:

 Window next;  next = new PasswordVerification();
 next.Owner = this;
  next.ShowDialog();
            <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" />
但是,与我预期的(文本将发生变化)不同,我得到的是以下内容: 如您所见,后窗的图像显示得很模糊,而不是我的文本块

这是怎么回事?请帮帮我

弹出的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}"/>

几点建议:
1) 删除代码以打开位于所有者中心的窗口,只需在
窗口中使用此代码即可

<Window ....
    WindowStartupLocation="CenterOwner">

3) 将
矩形
文本块
放入
或其他容器中。可能是这些控件重叠的问题,因为它们位于网格内。

您是否可以尝试在主窗体上将
Visible
属性设置为false,然后在
ShowDialog
之后将其设置回true?

刚刚制作了一个简单的应用程序,试图重现您的行为,但它按预期工作。从图片判断,我假设PasswordVerification窗口有一些修改,使其看起来像一个弹出窗口。你能给我看看吗?或者关闭它们来缩小问题?是的。我编辑我的帖子,我会添加一些xaml1缺失的代码。2不是必需的,因为我的代码有点长,为了方便起见,我在这里简化了它。我试试3Ah,看。看起来在可视化树中出现了一些问题。您是否尝试从窗口XAML中删除AllowTransparency=“True”,或从代码隐藏中删除此.Topmost=True(我认为这是不必要的,因为模态对话框已经位于顶部)。
Window next = new PasswordVerification {Owner = this};
next.ShowDialog();