【发布时间】:2018-12-09 20:34:03
【问题描述】:
这是我正在使用的代码和显示结果的图像。这个最终产品具有我想要的外观,但我认为必须有更好的方法来做到这一点。
<Page
x:Class="UIFollowAlong.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UIFollowAlong"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Page.Resources>
<Style TargetType="Rectangle"
x:Key="ColorButton">
<Setter Property="Margin" Value="5"/>
<Setter Property="RadiusX" Value="50"/>
<Setter Property="RadiusY" Value="50"/>
</Style>
</Page.Resources>
<Grid Background="White">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Rectangle x:Name="RedButton"
Grid.Row="0"
Grid.Column="0"
Fill="Red"
Style="{StaticResource ColorButton}"/>
<Rectangle x:Name="YellowButton"
Grid.Row="0"
Grid.Column="1"
Fill="Yellow"
Style="{StaticResource ColorButton}"/>
<Rectangle x:Name="GreenButton"
Grid.Row="1"
Grid.Column="0"
Fill="Green"
Style="{StaticResource ColorButton}"/>
<Rectangle x:Name="BlueButton"
Grid.Row="1"
Grid.Column="1"
Fill="Blue"
Style="{StaticResource ColorButton}"/>
<Ellipse x:Name="CenterDot"
Grid.ColumnSpan="2"
Grid.RowSpan="2"
Fill="Black"
Width="50"
Height="50"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Grid>
我特别提出问题的代码是椭圆。
<Ellipse x:Name="CenterDot"
Grid.ColumnSpan="2"
Grid.RowSpan="2"
Fill="Black"
Width="50"
Height="50"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
如何在忽略网格的行和列定义的情况下将椭圆对齐到中心?默认情况下,椭圆变为 0,0 并被放置在最左上角网格位置的红色矩形顶部。
我尝试放置在页面内,而不是网格内,但我认为页面只能有一个内容属性?
我展示的图片正是我想要的结果
谢谢!
【问题讨论】:
-
老实说,我对你的问题有点困惑。看起来你已经实现了你想要的,但对你到达那里的方式并不满意。为什么?网格用于布局...
-
我喜欢在学习新的软件和语言的过程中了解不同的做事方式,以及实现相同效果的不同代码实现。有时我会不遗余力地以一种更奇怪的方式做某事,只是为了知道它有效。此外,以不同的方式完成任务,更多地跳出框框,我经常会更多地了解程序的底层结构。是的,我从上面的代码中得到了我想要的结果,但我想“嗯,一定有更好的方法来做到这一点。”