我是指在我上面的那串代码里实现
时间: 2023-10-26 14:24:42 浏览: 33
在你提供的代码中,可以在创建 `Border` 对象时,将要居中的控件设置为 `Border` 的 `Child` 属性,并将 `Border` 的 `HorizontalAlignment` 和 `VerticalAlignment` 属性都设置为 `Center`,这样就可以将控件水平垂直居中在 `Border` 中了。
下面是修改后的代码示例:
```csharp
var currentLeft = Canvas.GetLeft(customFont);
var currentTop = Canvas.GetTop(customFont);
canvas.Children.Remove(customFont);
var border = new Border();
border.BorderBrush = Brushes.Black;
border.BorderThickness = new Thickness(1);
border.HorizontalAlignment = HorizontalAlignment.Center;
border.VerticalAlignment = VerticalAlignment.Center;
var drawingVisual = new DrawingVisual();
using (var dc = drawingVisual.RenderOpen())
{
var pen = new Pen(Brushes.Black, 1);
pen.DashStyle = new DashStyle(new double[] { 4, 4 }, 0);
dc.DrawLine(pen, new Point(0, 0), new Point(customFont.ActualWidth, 0));
}
border.Child = customFont;
border.Width = customFont.ActualWidth;
border.Height = customFont.ActualHeight;
border.Child = customFont;
canvas.Children.Add(border);
Canvas.SetLeft(border, currentLeft);
Canvas.SetTop(border, currentTop);
```
这里的 `border` 对象就是要放置控件的容器,`customFont` 是要居中的控件。将 `customFont` 设置为 `border` 的 `Child` 属性,然后将 `HorizontalAlignment` 和 `VerticalAlignment` 属性都设置为 `Center`,这样就可以将控件水平垂直居中在 `border` 中了。