【发布时间】:2009-05-27 16:45:54
【问题描述】:
我在 Visual Studio 中的 .NETCF windows mobile 项目中显示自定义(继承)控件时遇到问题。该控件在设计器界面上显示为一个灰色框,其中写有类名。
作为一个测试用例,我有一个简单的控件定义为:
public class ucButton2 : Button
{
}
应该就像一个按钮,但它给出了有趣的行为。
过去,我用设计时属性文件解决了这个问题或类似问题。所以我在文件 DTA.xmta 中包含了以下内容
<?xml version="1.0" encoding="utf-16"?>
<Classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd">
<Class Name="MyProject.CustomControls.ucButton2">
<Description>Testbutton</Description>
<DesktopCompatible>true</DesktopCompatible>
</Class>
</Classes>
现在事情变得非常奇怪——我开始在不相关的类型化数据集文件中收到来自 genasm.exe 的编译错误。
根据这篇文章最后一条评论的建议: http://www.simonrhart.com/2008/02/upgrading-your-solutions-to-visual.html
我将 DTA.xmta 更改为具有“嵌入式资源”的构建操作
现在应用程序编译了,但没有任何改变——设计器界面仍然只显示一个带有类名的空框。
我已关闭并重新打开 Visual Studio,以确保不会发生奇怪的缓存——同样的行为。
就像我说的,过去 xmta 文件已经解决了这类问题。但这次没有。但同时,在过去,添加 xmta 文件并不会导致 genasm.exe 在编译时出错。在我的另一个项目中,我的 xmta 文件的构建操作为“无”,而不是“嵌入式资源”。
在运行时,一切正常。这纯粹是一个设计时问题。任何帮助将不胜感激。
【问题讨论】:
-
我没有添加 XMTA 文件,而是创建了一个类图(在解决方案资源管理器的项目中右键单击,然后单击查看类图),然后单击需要添加自定义属性的类;在属性窗口中,单击 [...] 框,将显示“UcControl 的自定义属性”,例如:DesktopCompatible(true) 或 DesignTimeVisible(true)、Description("uc description")、ToolboxBitmap("namespace. ucControl”)。我没有同质的结果,有时设计师是可见的。
标签: visual-studio-2008 compact-framework rendering user-controls designer