2014-01-15 5 views
0

У меня есть субпроект, который является классом и содержит DataLib.cs и пользовательский элемент управления MediumTile.xaml. Этот пользовательский элемент управления будет сгенерирован для изображения, чтобы использовать его в качестве фона плитки. Но прежде чем я должен изменить несколько вещей динамически. Итак, как я могу получить контроль над LayoutRoot внутри MediumTile.xaml, например, чтобы установить цвет фона?Как использовать пользовательский элемент управления XAML в библиотеке классов

Что-то вроде этого:

MediumTile.LayoutRoot.Background = new SolidColorBrush(Color.FromArgb(255, 206, 23, 23); 
+0

Просто дайте ему имя. например:

+0

, конечно, у него уже есть это имя – user3168511

+0

Ах, это отдельный проект. Вы можете открыть элемент управления, создав свойство: public Grid Layout {get {return LayoutRoot; } } –

ответ

0

MediumTile.xaml, вероятно, существует в каком-то пространстве имен.

Вы можете найти пространство имен UserControl в верхней части файла рядом с объявлением x: Class.

Обычно это будет выглядеть как

x:Class="MyProject.UserControls.MediumTile" 

если ваш проект настроен нормально.

Если вы посмотрите на MediumTile.xaml.cs, вы должны видеть пространство имен, как так

namespace MyProject.UserControls 
{ 
    public partial class MediumTile : UserControl 
    ... 

Во-первых, вам нужно будет ссылаться на свой подпроект.

Предполагая, что у вас есть структура проекта, как так ...

CurrentProject/ 
    -MyPage.xaml 

SubProject/ 
    -MediumTile.xaml 

правой кнопкой мыши решение в Visual Studio и нажмите Properties.

В разделе «Свойства» выберите Project Dependencies.

Выберите «Текущий проект» в раскрывающемся меню.

В поле поля Depends On выберите подпроект.

Нажмите на StartUp Project в боковой панели.

Удостоверьтесь, что Single StartUp Project указывает на CurrentProject. Если нет, установите его.

Теперь вы закончили настройку, теперь вам нужно будет использовать MediumTile.xaml.


  1. Чтобы использовать MediumTile UserControl в другом файле XAML, вам нужно будет объявить

    Xmlns: customControls = "CLR-пространств имен: MyProject.UserControls"

внутри заголовок страницы и вызов

<ListBox.ItemTemplate> 
    <DataTemplate> 
     <customControls:MediumTile/> 
... 
  1. Чтобы использовать этот UserControl в другом файле CS, вам нужно будет импортировать пространство имен

    с использованием MyProject.UserControls;

в верхней части страницы и ссылки на элемент управления, как так (в зависимости от конструктора вашего UserControl в),

MediumTile mediumTile = new MediumTile() 

Об LayoutRoot проблем, вы можете просто установить цвет фона непосредственно в UserControl. UserControl наследует элемент Control, у которого уже есть свойство Background.

0

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

  • PresentationCore
  • PresentationFramework
  • WindowsBase

Тогда вы можете создать и получить доступ к Control обычным способом.

+0

вы можете привести пример синтаксиса, пожалуйста – user3168511

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