在ResourceDictionary文件中使用viewbox
我有ResourceFile1.xaml文件的内容
....
PhoneAppplicationPage的代码
但这个代码不起作用。 Designer Error:InvalidOperationException:Element已经是另一个元素的子元素。 还有如果我使用类似的代码运行时错误:无法分配给属性’System.Windows.Controls.ContentControl.Content’。 如果Viewbox在Grid.Resources中使用没有问题可以正常工作但我想使用ResourceDictionary.how我可以吗?
因为Silverlight资源字典中的所有内容都必须是可共享的。 在WPF中,您可以在资源字典中的对象上使用x:Shared属性来强制WPF为每个资源检索创建新实例。 要在Silverlight中避免这种情况,您可以创建一个DataTemplate
:
更新0
我写了一个示例,它更改了取决于CheckBox
值的模板。
转换器来更改模板:
public class TemplateSelectorConverter : IValueConverter { public DataTemplate TrueTemplate { get; set; } public DataTemplate FalseTemplate { get; set; } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (((bool) value)) return TrueTemplate; return FalseTemplate; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotSupportedException(); } }
资源:
Xaml标记:
我希望这有帮助。