我在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
属性绑定到UserControl
的Background
:
Background="{Binding Background, ElementName=guiUserControl}"
但这不是解决方案。请指教。
在Adobe Flex中,改变UserControl的背景非常自然,就像我在上面的代码中所做的那样。
我错过了什么吗?
感谢。
答案 0 :(得分:2)
该属性存在,但它似乎在Silverlight中不起作用。您下一个最好的选择是您说您已经知道的解决方案。使用usercontrol的背景绑定layoutroot的背景。