Tag: stroke

将XamlReader用于没有默认构造函数的控件

我有一些Xaml对象的字符串表示,我想构建控件。 我正在使用XamlReader.Parse函数来执行此操作。 对于一个简单的控件,比如Button,默认构造函数不带任何参数,这个工作正常: var buttonStr = “Text”; var button = (Button)XamlReader.Parse(buttonStr); 但是,当我尝试对例如Stroke控件执行此操作时,它会失败。 首先尝试一个简单的空笔画: var strokeStr = “”; var stroke = (Stroke)XamlReader.Parse(strokeStr); 这给出了错误: 无法创建“System.Windows.Ink.Stroke”类型的对象。 CreateInstance失败,这可能是因为没有’System.Windows.Ink.Stroke’的公共默认构造函数。 在Stroke的定义中,我发现它至少需要构造一个StylusPointsCollection。 我假设这是错误告诉我的,虽然有点假设这将由XamlReader处理。 尝试使用StylusPoints转换一个Xaml of Stroke会产生同样的错误: var strokeStr = “” + “” + “” + “” + “” + “”; var stroke = (Stroke) XamlReader.Parse(strokeStr); 我究竟做错了什么? 如何告诉XamlReader如何正确创建笔划?