Rectangle
元素具有StrokeDashArray
它允許它用破折號繪製,但它不支持圓角。 Border
控件支持帶圓角的漂亮粗線,但只能繪製實線。如何在WPF中創建帶圓角的虛線邊框?
什麼是最好的方式來實現帶圓角的虛線邊界,並有任何控制?
Example of dashed border http://img524.imageshack.us/img524/3186/dashedborder.png
Rectangle
元素具有StrokeDashArray
它允許它用破折號繪製,但它不支持圓角。 Border
控件支持帶圓角的漂亮粗線,但只能繪製實線。如何在WPF中創建帶圓角的虛線邊框?
什麼是最好的方式來實現帶圓角的虛線邊界,並有任何控制?
Example of dashed border http://img524.imageshack.us/img524/3186/dashedborder.png
WPF邊境控制不支持虛線。 如果您想爲控件應用虛線/虛線邊框,則可以簡單地用裝飾器裝飾控件。
這是示例裝飾類。這是任何UIelement的通用裝飾器。
class DottedLineAdorner : Adorner
{
public UIElement AdornedElement { get; set; }
public DottedLineAdorner(UIElement adornedElement) : base(adornedElement)
{
AdornedElement = adornedElement;
}
protected override void OnRender(DrawingContext drawingContext)
{
Size eltSize = (AdornedElement as FrameworkElement).DesiredSize;
Pen pen = new Pen(Brushes.Blue, 2) { DashStyle = DashStyles.DashDot };
drawingContext.DrawRoundedRectangle(null, pen, new Rect(0, 0, eltSize.Width, eltSize.Height), 10, 10);
}
}
我在我的xaml中有一個簡單的文本塊,它包含在一個名爲'LayoutGrid'的網格中。現在
,邊框可以在代碼中應用的背後
private void Window_Loaded(object sender, RoutedEventArgs e)
{
AdornerLayer.GetAdornerLayer(LayoutGrid).Add(new DottedLineAdorner(textblock));
}
您的圖片鏈接似乎已經打破。如果您仍然有原始圖像,請將其重新上傳到stack.imgur,或者編輯您的答案以使其在沒有圖像的情況下工作。謝謝。 – 2015-07-27 09:48:28