我有一个WPF应用程序和画布在那里。在画布中我有一个矩形。在程序已经处理的时候,我怎么能改变他的属性,比如高度或宽度?喜欢的东西:如何更改UIElement的值
int index = 0;
var childByIndex = canvas.Children[index];
childByIndex.SetValue(Height, 15);
我有一个WPF应用程序和画布在那里。在画布中我有一个矩形。在程序已经处理的时候,我怎么能改变他的属性,比如高度或宽度?喜欢的东西:如何更改UIElement的值
int index = 0;
var childByIndex = canvas.Children[index];
childByIndex.SetValue(Height, 15);
你必须告诉你要设置类似下面的DP哪个类型:
((Rectangle)canvas.Children[index]).SetValue(Rectangle.HeightProperty, 15.0);
是的,我有一个Rectangle,但是你的代码给我一个错误:1> C:\ Users \ neizv_000 \ Documents \ Visual Studio 2012 \ Projects \ Lab 6.5 \ Lab 6.5 \ MainWindow.xaml.cs(57,72,57,86):error CS1061:'bool'不包含'HeightProperty'的定义,并且没有找到接受类型'bool'的第一个参数的扩展方法'HeightProperty'(可以找到) rective或程序集引用?) – Corio
它应该工作..你能检查是否((Rectangle)canvas.Children [index])实际上是返回一个矩形? – Nitin
有些奇怪,在一个项目中起作用,而在另一个项目中不起作用。上面的错误信息是来自不工作的,我试图自己弄清楚。但如果你有一些想法,不要害羞。感谢您的帮助,我一整天都在拷打它。 – Corio
最简单的办法是给你的矩形的名称在XAML,然后用它在你的代码:
<Canvas>
<Rectangle x:Name="rect" />
</Canvas>
rect.Height = 15;
如果由于某种原因ÿ OU不能给你一个矩形名字XAML,你可以投你找到对象Rectangle
做术前:
Rectangle rect = (Rectangle)childByIndex;
rect.Height = 15;
如果您正在寻找在画布改变附加属性,如位置,你可以这样做:
Canvas.SetTop(rect, 10);
Canvas.SetLeft(rect, 20);
你的方式也可以,谢谢。但是我没有足够的声望来评价你的答案,对不起。你帮了很多忙。 – Corio
你试过你的代码了吗? –
C:\ Users \ neizv_000 \ Documents \ Visual Studio 2012 \ Projects \ Lab 6.5 \ Lab 6.5 \ MainWindow.xaml.cs(57,17,57,50):错误CS1502:最好的重载方法匹配'System.Windows 1> C:\ Users \ neizv_000 \ Documents \ Visual Studio 2012 \ Projects \ Lab 6.5 \ Lab 6.5 \ MainWindow.xaml.cs(57, 39,57,45):error CS1503:参数1:无法从'double'转换为'System.Windows.DependencyProperty' – Corio
尝试'childByIndex.SetValue(HeightProperty,15);' –