C# 无法将资源放置在ContentControl中
此XAML在Windows应用商店应用程序中不起作用:C# 无法将资源放置在ContentControl中,c#,xaml,windows-runtime,winrt-xaml,C#,Xaml,Windows Runtime,Winrt Xaml,此XAML在Windows应用商店应用程序中不起作用: <ContentControl Grid.Column="1" Content="{StaticResource AddUserStep1Control}" /> 控件如下所示: <UserControl> .. namespace etc. <Grid> <Grid.Resources> <Style TargetType="But
<ContentControl Grid.Column="1" Content="{StaticResource AddUserStep1Control}" />
控件如下所示:
<UserControl>
.. namespace etc.
<Grid>
<Grid.Resources>
<Style TargetType="Button">
<Setter Property="Margin" Value="10" />
<Setter Property="FontSize" Value="96" />
<Setter Property="Padding" Value="50, 20" />
</Style>
</Grid.Resources>
<StackPanel>
<TextBlock HorizontalAlignment="Center" FontSize="96" Margin="0,50,0,30">I am a...</TextBlock>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button>Boy</Button>
<Button>Girl</Button>
</StackPanel>
</StackPanel>
</Grid>
</UserControl>
.. 名称空间等。
我是一个。。。
男孩
姑娘
据我所知,ContentControl
可以包含任何内容。我将Content
属性绑定到视图模型,然后从应用程序资源中获取UserControl
,并将其设置在视图模型属性上,但这又产生了另一个错误,导致我尝试在XAML中完成这一切
我能够在视图模型的代码中实例化一个TextBlock
,并将其设置在绑定属性上,然后在UI中查看该控件和文本,但UserControl
的情况并非如此
以下是错误消息:
类型的第一次机会例外
中出现“Windows.UI.Xaml.Markup.XamlParseException”
GlyphWriterStoreApp.exe
WinRT信息:未能分配给属性
“Windows.UI.Xaml.Controls.ContentControl.Content”因为
无法将“Windows.UI.Xaml.Controls.UserControl”分配给该类型
“对象”。[行:55位置:45]
其他信息:与此错误代码关联的文本可能会丢失
找不到
未能分配给属性
“Windows.UI.Xaml.Controls.ContentControl.Content”因为
无法将“Windows.UI.Xaml.Controls.UserControl”分配给该类型
“对象”。[行:55位置:45]
如果存在此异常的处理程序,则程序可能会安全运行
继续
更新1
因此,问题在于将作为资源的控件设置为
内容
。我刚刚尝试了一个TextBlock
,它在App.xaml
中声明,并给出了相同的错误。似乎是一个已知的问题
这很奇怪,因为即使在代码中加载资源(生成任何控件的实例)也不起作用,而在代码中实例化控件确实起作用,即使它们是相同的
它们只是对象引用。很奇怪。看起来我必须在运行时动态实例化我的控件类型,或者使用模板选择器
<UserControl>
.. namespace etc.
<Grid>
<Grid.Resources>
<Style TargetType="Button">
<Setter Property="Margin" Value="10" />
<Setter Property="FontSize" Value="96" />
<Setter Property="Padding" Value="50, 20" />
</Style>
</Grid.Resources>
<StackPanel>
<TextBlock HorizontalAlignment="Center" FontSize="96" Margin="0,50,0,30">I am a...</TextBlock>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button>Boy</Button>
<Button>Girl</Button>
</StackPanel>
</StackPanel>
</Grid>
</UserControl>