Silverlight: есть ли у UserControl свойство фона? - PullRequest
1 голос
/ 16 октября 2011

Я создал BarMenuItem UserControl в библиотеке классов Silverlight и пытаюсь использовать его в своем основном приложении Silverlight.

BarMenuItem.xaml:

<UserControl x:Class="ButtonControlLibrary.BarMenuItem"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

</UserControl>

BarMenuItem.xmal.cs: ​​

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace ButtonControlLibrary
{
    public partial class BarMenuItem : UserControl
    {
        public BarMenuItem()
        {
            InitializeComponent();
        }
    }
}

Итак, на главной странице я xmlns:blib="clr-namespace:ButtonControlLibrary;assembly=ButtonControlLibrary" определен

Пытался использовать BarMenuItem:

<blib:BarMenuItem Width="100" Height="150" Background="Red"/>

Скомпилировать и запустить его,и я ожидал увидеть красный фон, но ничего не вижу.

Что радует?

Я так растерялся.Я много погуглил, обнаружив, что есть обходной путь, но очень уродливый: поместите контейнер Grid в UserControl, а затем привязайте его свойство Background к UserControl Background:

Background="{Binding Background, ElementName=guiUserControl}"

Но это не решение.Пожалуйста, совет.

В Adobe Flex настолько естественно изменить фон UserControl, как я делаю в приведенном выше коде.

Я что-то упустил?

Спасибо.

1 Ответ

2 голосов
/ 16 октября 2011

Свойство есть, но в Silverlight оно не работает. Ваша следующая лучшая ставка - это решение, которое, как вы сказали, вы уже знаете. Привязка фона layoutroot к фону usercontrol.

...