Silverlight:UserControl是否具有背景属性?

时间:2011-10-16 05:48:24

标签: silverlight user-controls background properties

我在Silverlight类库中创建了一个BarMenuItem UserControl,并尝试在我的主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();
        }
    }
}

所以在MainPage中我定义了xmlns:blib="clr-namespace:ButtonControlLibrary;assembly=ButtonControlLibrary"

尝试使用BarMenuItem

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

编译并运行它,我希望看到红色背景,但我什么也看不见。

发生了什么事?

我很困惑。我搜索了很多,发现有一种解决方法,但非常难看:将Grid容器放在UserControl内,然后将其Background属性绑定到UserControlBackground

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

但这不是解决方案。请指教。

在Adobe Flex中,改变UserControl的背景非常自然,就像我在上面的代码中所做的那样。

我错过了什么吗?

感谢。

1 个答案:

答案 0 :(得分:2)

该属性存在,但它似乎在Silverlight中不起作用。您下一个最好的选择是您说您已经知道的解决方案。使用usercontrol的背景绑定layoutroot的背景。