WPF将标签放置在固定位置

时间:2018-11-29 09:54:14

标签: c# .net wpf visual-studio

我有一个带有“平移和可缩放图像”的WPF窗口。现在,我想要一个标签,该标签将在窗口中的固定位置(例如,在中心)显示缩放百分比。即使缩放或平移照片也不应更改位置。

这是我窗口的XAML:

<Window x:Class="ImageViewer.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:ImageViewer"
    Name="mainWindow"
    mc:Ignorable="d"
    Title="MainWindow" WindowStyle="None"
    AllowsTransparency="True"
    WindowStartupLocation="CenterScreen"
    Height="600"
    Width="900"
    WindowState="Maximized">
<Window.Background>
    <SolidColorBrush Opacity="0.5" Color="#FF3C3C6A"/>
</Window.Background>
<Grid>
    <local:ZoomBorder x:Name="border" ClipToBounds="True">
        <Image Name ="imageContainer"/>
    </local:ZoomBorder>
</Grid> </Window>

现在,我要以不会更改其位置的方式放置以下标签。

<Label Name ="ZoomLabel" Width="150" Height="50"
              Content="100%" HorizontalContentAlignment="Center"
              VerticalContentAlignment="Center"
              Background="#FF383838" Foreground="#FFEAE4E4" 
              FontWeight="Bold" Opacity="0.75" FontSize="30"/>

1 个答案:

答案 0 :(得分:1)

您将要在与网格中的缩放边框相同的行,列中添加标签,以使其覆盖:

<Grid>
    <local:ZoomBorder x:Name="border" ClipToBounds="True">
        <Image Name ="imageContainer"/>
    </local:ZoomBorder>
    <Label Name ="ZoomLabel" Width="150" Height="50"
              Content="100%" HorizontalContentAlignment="Center"
              VerticalContentAlignment="Center"
              Background="#FF383838" Foreground="#FFEAE4E4" 
              FontWeight="Bold" Opacity="0.75" FontSize="30"
              Margin="10,10,0,0"
              />
</Grid> </Window>