Скрыть элемент управления в библиотеке управления пользователями WPF - PullRequest
11 голосов
/ 15 сентября 2010

У меня есть проект, созданный на основе шаблона «Библиотека управления пользователями WPF» в Visual Studio. Этот проект содержит один основной пользовательский контроль плюс дополнительные Windows / Usercontrols.

Как я могу "спрятать" эти дополнительные элементы управления Windows / User, чтобы пользователь мог импортировать только основной элемент управления пользователя из сборки (я хотел сделать снимок экрана, чтобы проиллюстрировать мой вопрос, но, к сожалению, моя "репутация" слишком низко!).

Thx All
Фред

Ответы [ 3 ]

26 голосов
/ 15 сентября 2010

Сделать эти элементы управления внутренними. Если у вас есть классические пользовательские элементы управления с XAML и кодом, вам нужно добавить x:ClassModifier="internal" к корневому элементу в XAML:

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="MyNameSpace.MyUserControl"
    x:ClassModifier="internal">
       <!-- bla -->
</UserControl>
0 голосов
/ 13 февраля 2013

Я считаю, что x:ClassModifier="internal" сделает весь пользовательский контроль внутренним.Это может быть нежелательно.

Вместо этого, если вы добавите x:FieldModifier="private" к тем элементам управления в пользовательском элементе управления, которые не желают быть доступными для потребителя UserControl, сгенерированный C # будет иметь эти элементы управления какчастный.Обратите внимание на использование строчных букв, что правильно для модификатора поля C #.

0 голосов
/ 15 сентября 2010

Возможно, использование атрибутов решит вашу проблему. В пространстве имен ComponentModel есть один атрибут «DesignTimeVisible». Если вы поместите такой атрибут прямо над реализацией вашего класса и установите для него значение false, соответствующий элемент управления не должен отображаться на панели инструментов конструкторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...