没有Horizo​​ntalOffset的弹出窗口以所有分辨率wpf为中心

时间:2018-05-05 16:19:36

标签: c# wpf popup

我设计了一个弹出窗口,以水平方向中心和垂直显示“VerticalOffset =”45“”。垂直位置在所有分辨率下都是完美的,但水平位置不是中心对齐的。如何使其中心对齐所有分辨率。

<Popup x:Class="....Wpf.Controls.ShowError"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:...Controls"
         mc:Ignorable="d"  PlacementRectangle="0,0,30,50"
   VerticalOffset="45"
   HorizontalOffset="600" 
   Placement="Bottom"
   PopupAnimation="Fade" AllowsTransparency="True">
<Border Width="500" Height="150" BorderBrush="{StaticResource TransparentBrush}" HorizontalAlignment="Center" BorderThickness="0" Background="{StaticResource TransparentBrush}" >
    <Border Style="{StaticResource ErrorPopupBorderStyle}">
        <TextBlock  x:Name="tbError"  Style="{StaticResource ErrorMessageStyle}"/>
    </Border>
</Border>

 ShowError pop = new ShowError
        {
            Message = error,
            IsError = true
        };
        pop.Show();

1 个答案:

答案 0 :(得分:0)

得到了解决方案。

pop.Horizo​​ntalOffset =(MainWindow.Instance.Width / 2)+(border.Width / 2);