我可能会遗漏一些关于WPF设计的基础知识,但我想知道为什么WPF控件上的许多属性都被公开为"对象"类型?
例如,MenuItem.Icon是一个Object,MenuItem.ToolTip也是.作为一个近乎第一次使用的用户,这对我来说非常混乱(我觉得我使用的是动态编程语言,不知道将ToolTip设置为String类型是否会起作用).此外,我试图将Icon设置为'System.Drawing.Icon',并且我得到ArgumentException"Argument'图片'必须是可以用作Icon的图片." 不应该输入属性,这样它至少可以描述你应该给它的世界吗?
说实话,我的猜测,其原因是因为你无法实现你没有(不创建一个包装器)创建一个类型的接口,但是这只是一个猜测.
非常感谢您的回答和见解!
我认为主要原因是因为Object是“.Net Framework 中所有类的最终基类”。这为您提供了灵活性,在 WPF 中您不限于预定义的类型。Wpf 是不同的,并且有一个学习曲线,但它确实为您提供了更多选择来创建看起来不错的产品。
IE
您可以将文本框分配给工具提示:
TextBox tb = new TextBox();
tb.Text = "Hello World";
this.ToolTip = tb;
Run Code Online (Sandbox Code Playgroud)
位图
BitmapImage myBitmapImage = new BitmapImage(new Uri((@"C:\Temp\20100706.jpg")));
Image image = new Image();
image.Source = myBitmapImage;
this.ToolTip = image;
Run Code Online (Sandbox Code Playgroud)
并将图像分配给 MenuItem
BitmapImage myBitmapImage = new BitmapImage(new Uri((@"C:\Temp\20100706.jpg")));
Image image = new Image();
image.Source = myBitmapImage;
menuItem1.Icon = image;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |