【问题标题】:Check if FrameworkElement does have Border检查 FrameworkElement 是否有 Border
【发布时间】:2012-10-31 01:36:48
【问题描述】:
我在一个类的事件处理程序中有一个FrameworkElement。是否有可能检查此FrameworkElement 是否是具有borderthickness/borderbrush 属性的元素?
喜欢
var element = myframeworkelement as IHasBorder;
element.borderthickness = new Thickness(1,2,3,4);
这样的东西存在吗?
【问题讨论】:
标签:
c#
.net
wpf
frameworkelement
【解决方案1】:
BorderThickness 和 BorderBrush 属性在 Control 类中定义。
所以您可以尝试将您的FrameworkElement 转换为Control,如果可行,请设置属性:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
var pnl = new StackPanel();
this.Content = pnl;
var button = new Button();
button.Content = "Hi";
pnl.Children.Add(button);
SetBorder(button);
}
public void SetBorder(FrameworkElement fe)
{
var borderControl = fe as Control;
if (borderControl != null)
{
borderControl.BorderThickness = new Thickness(10);
borderControl.BorderBrush = Brushes.Red;
}
}
}