1

У меня проблемы с отображением пользовательских (унаследованных) элементов управления в моем мобильном проекте Windows .NET .NET в Visual Studio. Элемент управления отображается на поверхности дизайнера как серый ящик с именем класса, написанным на нем.Невозможно отобразить пользовательские элементы управления в VS 2008 Designer - .NETCF

В тесте у меня есть простое управление определяется как:

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 для barf во время компиляции. В моем другом проекте у моего xmta-файла есть действие сборки «none», а не «встроенный ресурс».

Во время работы все работает нормально. Это чисто проблема времени разработки. Любая помощь приветствуется.

+0

вместо добавления файла XMTA создайте диаграмму классов (щелкните правой кнопкой мыши по проекту в проводнике решений и диаграмме классов щелчка), после этого щелкните в классе, который вам нужно добавить пользовательские атрибуты; в окне свойств щелкните в поле [...], в котором будут показаны «Пользовательские атрибуты для UcControl», например: DesktopCompatible (true) или DesignTimeVisible (true), Описание («Описание uc»), ToolboxBitmap («namespace. ucControl "). У меня нет однородных результатов, иногда дизайнер виден. – antonio

ответ

0

Это связано с тем, что дизайнер управления интеллектуальным устройством не поддерживает визуальное наследование - или я должен сказать, что он не отображает его богато. Независимо от того, является ли код дефектом или по дизайну, он не работает, как настольный дизайнер .NET. Иногда он отображает его, иногда это не так.

Но ваш пользовательский код управления по-прежнему будет работать, он не всегда отображается так, как ожидалось.

1

Я бы сказал, что вы добавляете DesktopCompatible (true) в качестве пользовательского атрибута в элемент управления. См.: this post

 Смежные вопросы

  • Нет связанных вопросов^_^