1

我正在尝试对具有 XAxis 属性的图表工具进行子类化,该属性的类型为 IAxis(因此您可以给它一个 NumericAxis、DateAxis 等)。正常使用基本图表时,我可以像这样设置 XAxis:

<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/>其中一个放在其中,那么轴确实会显示在那里,但是感觉不正确,因为它实际上并没有在 BaseChart 上设置 XAxis 属性,而且它是绕过 NumericAxis 对象上的 AxisAlignment 属性,并将轴显式放置在我将轴代码放入的任何 AxisArea 中。

就像我说的那样,我确实从代码隐藏中进行了这项工作,我只是想确保我以最好的方式做到这一点。任何帮助将不胜感激,在此先感谢!

4

1 回答 1

0

请查看 MSDN 上的Control Authoring Overview页面以获得对您问题的完整答案。

但是,简而言之,对于一个CustomControl,您应该在您的应用程序根目录中创建一个名为 的文件夹Themes。您应该在此文件夹中添加一个名为 XAML 的文件,并在其中Generic.xaml放置一个ControlTemplatefor your文件CustomControl

对于 a UserControl,您只需将您Style的 s 添加到UserControl.Resources页面的部分。

于 2013-09-06T14:41:39.887 回答