在XAML中从Windows Phone Toolkit定义CustomMessageBox

时间:2013-03-29 00:30:52

标签: silverlight windows-phone-7 xaml windows-phone

我可以在XAML中定义CustomMessageBox吗?我有代码:

<phone:phone:PhoneApplicationPage.Resources>
        <toolkit:CustomMessageBox x:Key="CustomMessageBox" Title="Blabla" IsLeftButtonEnabled="True" LeftButtonContent="OK" Content="blabla" />
</phone:PhoneApplicationPage.Resources>

当我试图运行它时:

(this.Resources["CustomMessageBox"] as CustomMessageBox).Show();

我得到InvalidOperationException - “元素已经是另一个元素的子元素。”。

是否可以这样做,或者我必须从代​​码隐藏中定义它?有没有解决方法?

1 个答案:

答案 0 :(得分:0)

由于this预订(不是广告,只是显示来源),您可以执行以下操作:

1创建新的UserControl,将其命名为CustomUserControl.xaml

2向UC添加自定义UI元素

<StackPanel x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}" Margin="0,0,0,10">
 <TextBlock Text="Custom content inside the UserControl XAML" TextWrapping="Wrap"
 HorizontalAlignment="Left"/>
 <MediaElement Source="http://mschannel9.vo.msecnd.net/o9/mix/09/wmv/key01.wmv"/>
 </StackPanel>

3从主页的代码隐藏中运行

var messageBox = new CustomMessageBox
{
Content = new CustomUserControl(),
LeftButtonContent = "OK",
RightButtonContent = "Cancel",
};
messageBox.Show();

现在看来你可以在消息框中播放视频:)

PS:还找到了一些信息here