我正在尝试子类化一个图表工具,它上面有一个XAxis属性,类型为IAxis(所以你可以给它一个NumericAxis,DateAxis等)。正常使用基本图表时,我可以像这样设置XAx:
<chart:BaseChart>
<chart:BaseChart.XAxis>
<chart:NumericAxis VisibleRange="{Binding XAxisVisibleRange}" AxisAlignment="Bottom"/>
</chart:BaseChart.XAxis>
</chart:BaseChart>
但是,我不确定在自定义控件中设置此默认轴的最佳做法是什么,如果它在XAML中,在C#代码隐藏中等等?通过在我的子类的构造函数中设置XAxis属性/绑定,我可以从代码隐藏中获得它。这有效,我只是不知道这是否是“正确”的方式。
作为WPF的新手,我不知道在XAML中为自定义控件在哪里/如何做,如果它甚至是正确的位置。它应该进入控制模板,风格还是其他地方?我尝试在风格中做一个Setter,但没有用(它编译但我没有看到任何轴)。从控件模板中,它无法识别<chart:BaseChart.XAxis>
。 AxisAreas定义为顶部右下角和左下角,如果我只是将<chart:NumericAxis etc/>
放在其中一个,那么轴确实显示在那里,但是这感觉不正确,因为它实际上并没有设置XAxis属性BaseChart,加上它绕过NumericAxis对象上的AxisAlignment属性,并明确地将轴放在我放入轴代码的AxisArea中。
就像我说的那样,我确实从代码隐藏中解决了这个问题,我只是想确保我能以最好的方式做到这一点。任何帮助将非常感谢,提前感谢!
答案 0 :(得分:0)
请查看MSDN上的Control Authoring Overview页面,以获得问题的完整答案。
但是,简而言之,对于CustomControl
,您应该在名为Themes
的应用程序根目录中创建一个文件夹。您应该将名为Generic.xaml
的XAML文件添加到此文件夹中,并且应该为ControlTemplate
添加CustomControl
。
对于UserControl
,您只需将Style
添加到页面的UserControl.Resources
部分即可。