我有一个窗口,其大小可以在运行时由用户更改。
我想画一条延伸到窗口宽度的水平线。
我可以通过隐藏代码来做到这一点(在窗口调整大小事件中,改变线条的大小),
但我正在寻找一种方法来更改 xaml 中行的大小,例如,将 x1、x2、y1 和 y2 绑定(bind)到它们的父级(或窗口)大小,当窗口大小发生变化时,行会自行调整大小.
我该怎么做?
最佳答案
在这种情况下,也许可以尝试使用 Separator
:
A
Separator
control draws a line, horizontal or vertical, between items in controls, such as ListBox, Menu, and ToolBar.
Separator 的基类是 Control
,这意味着可以应用 Style/ControlTemplate,当你想为他单独存储属性时,这很舒服。
例子:
<Grid>
<Separator Name="MySeparator"
Height="4"
Width="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Bottom"
Background="Black" />
</Grid>
此示例在 Window
的整个宽度的底部绘制一条线。设置属性 Width="Auto"
和 HorizontalAlignment="Stretch"
可以自动将 Separator 拉伸(stretch)到窗口的宽度。
要为分隔符指定任意高度
,请使用以下样式:
<Style TargetType="{x:Type Separator}">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Separator}">
<Rectangle SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
Height="{TemplateBinding Height}"
Width="{TemplateBinding Width}"
Fill="{TemplateBinding Background}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
关于c# - 如何在 xaml 中填充宽度的窗口中绘制一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22842998/