将Popup控件放在屏幕和Textblock文本中心

时间:2015-03-13 18:29:01

标签: c# wpf

我是C#WPF的新手。我希望我的Popup控件位于用户屏幕的某个坐标中。我想让textblock文本居中于textblock本身。我试图添加一个块,但它不起作用。看看我的XAML代码:(我在个人项目中完成了97%。:))

另外,看看我的截图,我在那里放了一个红色的盒子,我希望我的弹出控件在那里,虽然这不是我的优先考虑因为原来的位置对我很好,但如果这样我会很高兴感动。

接下来,看看讨厌的文字,它不是居中的。 弹出窗口的当前位置位于屏幕的最左侧和最高位置。

<Window x:Class="KeyLocks_Notifier.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Popup Name="Popup1" AllowsTransparency="True" PlacementRectangle="0,0,30,50" Placement="Center"
          PopupAnimation="Fade">
            <Border BorderBrush="{x:Null}" Height="50">
            <TextBlock Name="myPopupText"
                 Background="#FF9700FF"
                 Height = "40"
                 Width="180"
                 Foreground="White" FontWeight="Bold" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center">
                <TextBlock.Effect>
                    <DropShadowEffect/>
                </TextBlock.Effect>
            </TextBlock>
            </Border>
        </Popup>
    </Grid>
</Window>

1 个答案:

答案 0 :(得分:1)

在窗口上: 在XAML中,根级别上有WindowStartupLocation,有3个选项(Manual,CenterScreen,CenterOwner)

如果您想在屏幕上设置自定义位置,则需要将WindowStartupLocation设置为Manual并设置Top&amp;带有像素的Left

对于你的弹出窗口: 您可以将Placement设置为custom

Example Here

您的文字位置Here