【问题标题】:Position the Popup control in the screen and Textblock text center将 Popup 控件定位在屏幕和 Textblock 文本中心
【发布时间】:2015-05-16 08:40:18
【问题描述】:

我是 C# WPF 的新手。我希望我的 Popup 控件位于用户屏幕的某个坐标中。我想在文本块本身中使我的文本块文本居中。我试图添加一个块,但它不起作用。看看我的 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>

【问题讨论】:

  • 请显示您的 实际 XAML 生成该弹出窗口。
  • 完成了,但我只是将我的代码粘贴到了 pastebin 上,因为无法显示 xaml 代码。我不知道为什么。可能是因为标签和论坛阅读它不是文本。
  • 你只需要格式化为代码:)

标签: c# wpf


【解决方案1】:

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

如果您想在屏幕上自定义位置,您需要将 WindowStartupLocation 设置为 Manual 并使用像素设置 TopLeft

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

Example Here

对于你的文字位置Here

【讨论】:

  • 我已经看到你提供的关于文本居中的链接。它不起作用。您在上面看到我的代码,已经有一个边框标签。不过谢谢你:)
  • 你试过填充吗?
猜你喜欢
  • 2012-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多