0

我可以在 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 -“元素已经是另一个元素的子元素。”。

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

4

1 回答 1

0

由于本书(不是广告,只是显示来源),你可以这样做:

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:也在这里找到了一些信息

于 2013-05-10T08:49:18.120 回答