如何绘制水平线并居中?
问题描述:
这是我到目前为止。如何绘制水平线并居中?
当手机垂直:
当手机横向:
这里是我的XAML标记:
<StackPanel Margin="19 0 19 5">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="110" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="{Binding ImageUrl}"
Stretch="Uniform"
Margin="0 10 0 10"/>
<StackPanel Grid.Column="1" Margin="14 0 0 0">
<TextBlock Text="{Binding Title}"
FontSize="30" />
<TextBlock Text="{Binding ReleaseDate}"
FontSize="22"
Foreground="#E0A655"/>
<TextBlock Text="{Binding Synopsis}"
FontSize="22"
TextWrapping="Wrap"/>
</StackPanel>
</Grid>
<Line StrokeThickness="4" Stroke="#434343" X1="0" X2="350"
Y1="13" Y2="13" />
</StackPanel>
我想有一行与目前的宽度相同,但居中。但是,当手机处于水平状态时,该线路应该更大一些,以解决更广泛的可用空间。
这可能吗?
答
您可以通过使用保证金来调整您的内容而不是位置的大小。
如果使用Line(我没有真正检查过)不可能,那么您可以尝试使用1像素高(或4)而不是Rectangle。
编辑:用代码片段:
<Line HorizontalAlignment="Stretch" Margin="50, 10, 50, 10" Stroke="Black" StrokeThickness="4" />
答
您可以使用Stretch
使你Line
占据容器的整个宽度。您还可以使用左/右页边距在每边加少许空间:在第一种观点
<Line X1="0" X2="1" Stretch="Fill" Margin="20,0,20,0"/>
答
也许有点出人意料:行(以及其他形状 - 矩形,椭圆...)是FrameworkElements 。您可以像处理TextBlock一样处理它们,即设置尺寸,对齐,边距,不透明度,变换等等。您甚至可以动画/绑定形状定义属性(如Line.X1),因为它们都是DependencyProperties。
哇,工作比预期好。 :)当计时器达到零时,我会将此标记为已解决。 – 2011-05-31 13:01:49
为什么downvote? – jv42 2011-05-31 13:02:00
我没有倒下,别人也没有。 – 2011-05-31 13:03:25