我有一个带有弹出菜单的按钮,当用户点击此按钮应用程序崩溃时。它在构建版本10586中工作得很好。
获取错误:“无法分配给属性'Windows.UI.Xaml.FrameworkElement.MinWidth'”
以下是代码:
<Button x:Name="btnMore"
Style="{StaticResource DesktopAppBarButtonStyle}">
<StackPanel Orientation="Horizontal">
<SymbolIcon Symbol="More"></SymbolIcon>
</StackPanel>
<Button.Flyout>
<MenuFlyout Placement="Bottom">
<MenuFlyoutItem Text="Menu1"></MenuFlyoutItem>
<MenuFlyoutItem Text="Menu2"></MenuFlyoutItem>
<MenuFlyoutItem Text="Menu3"></MenuFlyoutItem>
</MenuFlyout>
</Button.Flyout>
</Button>
在我的DesktopAppBarButtonStyle中,我有下面的行导致错误:
MinWidth="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.FlyoutContentMinWidth}"
答案 0 :(得分:2)
将错误精确定位到您的风格是解决问题的第一步。根据{{3}},FlyoutContentMinWidth
属性是10586中的新属性(几乎在底部,实际上似乎是在10532和10547之间添加)。
如果它是C#代码功能,您可以使用this diff API检查功能的可用性来解决您的问题,但由于它是XAML,您必须设置您的最低版本为10586。
添加到generic.xaml但在a中不可用的任何新资源键 以前的版本。运行时使用的generic.xaml版本是 由设备运行的操作系统版本确定。你不能使用 运行时API检查以确定是否存在XAML资源。所以, 您必须只使用最小可用的资源键 您的应用支持的版本或XAMLParseException将导致您的 应用程序在运行时崩溃。