我使用Windows Phone Toolkit在Windows Phone 8应用上工作。 使用此扩展提供的CustomMessageBox时,必须将Content属性设置为您希望此控件显示的任何内容。 当我将内容设置为在代码中创建的StackPanel时,它可以正常工作。但是,当我在XAML中创建一个StackPanel时,在Application.Resources中这样:
<Application.Resources>
<StackPanel x:Key="MessageBox">
<TextBlock Text="Teste"/>
</StackPanel>
</Application.Resources>
并将其分配给CustomMessageBox
var messageBox = new CustomMessageBox();
messageBox.Content = Application.Current.Resources["MessageBox"];
它抛出一个ArgumentException告诉我&#34; Value不在预期的范围内&#34;。
当我将此StackPanel包装到另一个StackPanel中时,使用以下代码创建:
var sp = new StackPanel();
sp.Children.Add(Application.Current.Resources["MessageBox"];
这次抛出一个InvalidOperationException,说&#34; Element已经是另一个元素&#34;的孩子了。
所以我想我在XAML中以错误的方式声明了一个应用程序资源!
答案 0 :(得分:2)
试试这个。它是ContentTemplate。
XAML
<Application.Resources>
<local:LocalizedStrings xmlns:local="clr-namespace:PivotApp1" x:Key="LocalizedStrings"/>
<DataTemplate x:Key="MessageBoxTemp">
<StackPanel>
<TextBlock Text="Teste"/>
</StackPanel>
</DataTemplate>
</Application.Resources>
C#
messageBox.ContentTemplate = (DataTemplate)Application.Current.Resources["MessageBoxTemp"];