我有一个文件 GraphView.XAML 。我已将资源部分拆分为两个 ResourceDictionary 文件( Vertices.xaml 和 Edges.xaml )如下:
GraphView.XAML
<Window x:Class="graph_app.GraphView" ... >
<Grid>
<Grid.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Design/Vertices.xaml"/>
<ResourceDictionary Source="Design/Edges.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Grid.Resources>
...
<\Grid>
如果没有拆分代码可以工作,但是如果拆分我在 Vertices.xaml 中出现错误,告诉我 ChangeVertexColor_OnClick 方法无法解决:
Vertices.XAML
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:graph_app">
<Style TargetType="{x:Type controls:VertexControl}">
<EventSetter Event="MouseDoubleClick" Handler="ChangeVertexColor_OnClick"/>
^^^cannot resolve symbol^^^^
</Style>
</ResourceDictionary>
我再说一遍,如果放入一个XAML,代码就可以了。此外, ChangeVertexColor_OnClick 方法在 GrapView.xaml.cs 中实现,因此应该被识别,但在分割之后, Vertices.xaml 是失去对 x:Class 的追踪(我认为它忽略了它的存在,因为它是一个分离的文件)。
如何从分离的ResourcesDictionary文件中访问 ChangeVertexColor_OnClick ?
由于
答案 0 :(得分:1)
这里没有什么奇怪的事情发生:) - 它不应该工作,因为这是它的设计方式。我可以看到两种可能的解决方案:
ChangeVertexColor_OnClick
方法放在read more here controls:VertexControl
上设置(这样,还原你的拆分更改)