wpf - WPF 无法将控件停靠在停靠面板中,画布似乎改为居中
问题描述
使用 xaml 标记时
<Window x:Class="Foo.Bar.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"
mc:Ignorable="d"
Title="MainWindow" Height="400" Width="400">
<DockPanel LastChildFill="True">
<Canvas DockPanel.Dock="Right" Width="100" />
</DockPanel>
</Window>
...似乎画布没有停靠在右侧。
为什么?
相反,它变得居中。
解决方案
您已LastChildFill
设置为true
. 由于你DockPanel
只有一个孩子,它也是最后一个孩子,所以它被覆盖到Fill
. 它居中的原因是Width
已明确设置为100
。由于它无法填充该覆盖,因此它会尽力而为,并将其居中。
简单地删除LastChildFill
不会解决问题,因为默认值为true
. 要解决此问题,您必须明确设置LastChildFill
为false
.
这些默认设置的原因DockPanel
是通常用于容纳多个子控件,其中首先列出停靠到不同侧面的子控件,最后一个子控件占据剩余区域。仅与一个孩子一起使用它是相当不寻常的。
推荐阅读
- python - 网格中的反距离加权插值(Python)
- scala - Scala程序以下面的格式显示输出
- angular - Angular + PrimeNG 自定义确认对话框
- python - Django 静态文件 URL、ROOT、DIR 混淆
- objective-c - 将 excel 文件的大量记录加载到 Core Data(离线存储)
- node.js - 设置 Angular 5 + express 打字稿
- r - 如何从R中的向量中删除“”
- javascript - HTML 画布意外更改颜色
- processing - 我的绘图操作有问题
- image - 可以在图像上绘制“可擦除”箭头和线条吗?