Oxyplot引用HandyControl导致Oxyplot的PlotView的Style发生了位移一

最近在使用Oxyplot同时配合HandyControl来在项目中使用,结果发生了意想不到的问题。

首先我使用VS2019打开了官方的Oxyplot的源码里面的测试例子“oxyplot-develop\Source\Examples\WPF\SimpleDemo”,然后在该项目中添加了在官方下载的HandyControl.dll的引用。

接着在SimpleDemo例子的App.xaml中添加了一段代码:

 <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/TF4000.App.GUI.Common;component/Themes/SkinDefault.xaml" />
                <ResourceDictionary Source="pack://application:,,,/TF4000.App.GUI.Common;component/Themes/Theme.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
View Code

然后果断F5运行跑起来了,结果出现了以下这样的图形,让我怀疑人生,我只是加了HandyControl的引用,但是没有用到里面任何东西,你为什么要这样对我!!

 

本来SimpleDemo不添加任何东西跑起来的图形是这样的

 

这个问题困扰了我好几天,到现在还没解决,但是肯定和HandyControl重写了整个WPF的基本控件有关系,因为在Debug过程中发现尽管我没有用到HandyControl中的任何东西,但是还是会跑到HandyControl中的SimplePanel.MeasureOverride函数和SimplePanel.ArrangeOverride函数中,因此我断定HandyControl做了一些不为人知的事情。

所以我现在有以下几个思路:

1.能不能让Oxyplot和HandyControl关于Themes的使用完全独立,不让Oxyplot的Style受到HandyControl的Style影响。如果有,有什么函数或者属性设置能做到类似这种

[assembly: ThemeInfo(
    ResourceDictionaryLocation.None, //主题特定资源词典所处位置
                                     //(未在页面中找到资源时使用,
                                     //或应用程序资源字典中找到时使用)
    ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置
                                              //(未在页面中找到资源时使用,
                                              //、应用程序或任何主题专用资源字典中找到时使用)
)]
View Code

2.找到HandyControl中如何影响Oxyplot的原因,具体是哪个类,哪个函数影响的。这个也是我目前主要方向

3.能不能用HandyControl中的元素重写Oxyplot的显示控件。

结语:最后后面如果解决了我会再记录下来

 

posted @ 2020-08-26 14:26  捞个八阿哥  阅读(232)  评论(1编辑  收藏  举报