Пользовательский элемент управления в ссылке не отображается правильно - PullRequest
0 голосов
/ 03 июля 2011

Я сделал пользовательский элемент управления (круглая кнопка с фиксированным изображением) и проверил, работает ли он. Однако я хотел бы повторно использовать этот конкретный элемент управления в других проектах и, следовательно, подумал о создании из него библиотеки классов. Однако при попытке отображения настраиваемого элемента управления в других моих приложениях значки не отображаются, даже если кнопка реагирует на нажатия.

Я пытался создать иконку в проектах библиотеки классов как Контент и Ресурсы и тестировать, но безрезультатно. (конечно, я изменяю адресацию значка в коде, когда обновляю его значок сборки). На данный момент я решил оставить иконку /icons/myimage.png в качестве контента. И в коде библиотеки классов (XAML) я обращаюсь к нему как "/icons/myimage.png".

Итак, есть ли у кого-нибудь идея о том, как заставить круглую кнопку правильно отображаться в моих проектах? Как мне построить проект библиотеки классов?

Ответы [ 2 ]

0 голосов
/ 04 июля 2011

Я немного поэкспериментировал и нашел решение.Идея состоит в том, чтобы использовать встроенный ресурс для хранения изображения в DLL.А затем для загрузки его с помощью CustomControl можно использовать такие конструкции:

BitmapImage img = new BitmapImage();
img.SetSource(Assembly.GetExecutingAssembly().GetManifestResourceStream("MyLib.icons.my_icon.png"));

MyLib - это имя сборки для библиотеки классов.Значки - это папка, в которой ресурс хранится в сборке.

0 голосов
/ 03 июля 2011

Я не стал бы делать графику частью моей библиотеки классов, потому что, скорее всего, в будущем вам нужно будет настроить ее, поэтому я предлагаю сделать следующее свойство в вашем пользовательском модуле и установить изображение, где вы используетеэто:

public ImageSource ButtonImage {get { return <button image>; } set {  <set button image>; } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...