C# 动态宽度矩形内的中心标签
我有一个窗口,上面有一个长方形的画布。它将拉伸以填充画布的宽度。画布设置为最大化,没有工具栏填充整个屏幕,如下所示:C# 动态宽度矩形内的中心标签,c#,wpf,C#,Wpf,我有一个窗口,上面有一个长方形的画布。它将拉伸以填充画布的宽度。画布设置为最大化,没有工具栏填充整个屏幕,如下所示: <Window x:Class="Ericsson.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://s
<Window x:Class="Ericsson.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:Ericsson"
mc:Ignorable="d"
Title="MainWindow" WindowStyle="None"
WindowState="Maximized">
<Window.Resources>
<SolidColorBrush x:Key = "brushResource" Color = "Black" />
</Window.Resources>
<Canvas x:Name="MyCanvas" >
<Rectangle x:Name="TopRect" Fill="Black" Height="120" Canvas.Top="0" Canvas.Left="0" Width="{Binding ElementName=MyCanvas, Path=ActualWidth}"/>
<Label Content="Welcome to My World" Foreground="#FFFFFF" FontSize="24"
HorizontalAlignment="Center"
VerticalAlignment="Center"
/>
</Canvas>
</Window>
我的问题是,我有一个标签,需要在动态矩形内居中。上面的XAML代码将标签放在左上角。所以水平对齐和垂直对齐不起作用
如何在矩形内水平和垂直居中放置标签
谢谢您可以引入一个额外的容器-网格-它将正确对齐元素:
<Canvas x:Name="MyCanvas">
<Grid Width="{Binding ElementName=MyCanvas, Path=ActualWidth}">
<Rectangle x:Name="TopRect" Fill="Black" Height="120" />
<Label Content="Welcome to My World" Foreground="#FFFFFF" FontSize="24"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Grid>
</Canvas>
非常感谢。我在画布的另一部分使用这种方法。不知道为什么我不明白在这里做这件事。