我可以在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 - “元素已经是另一个元素的子元素。”。
是否可以这样做,或者我必须从代码隐藏中定义它?有没有解决方法?
答案 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