我有一个派生自UserControl的自定义WPF控件。在我的XAML文件的参考资料部分,我有几个模板和样式,这些模板和样式将被定义为将显示在我的自定义控件上的项目。TryFindResource无法找到资源
下面是我的一种风格的定义,绘制一个向下的箭头。
<Style x:Key="ArrowStyle" TargetType="Path">
<Setter Property="Margin" Value="4"/>
<Setter Property="Stretch" Value="Uniform"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Data" Value="M 0 0 L 5 5 L 10 0 Z"/>
<Setter Property="Fill" Value="{DynamicResource FormText}"/>
</Style>
所以,我有一个自定义的按钮派生的buttom对象。基本上它是一个显示箭头的小方形按钮。在我的自定义按钮的构造函数中,我有以下代码。
Path Arrow = new Path();
Arrow.Style = TryFindResource("ArrowStyle") as Style;
但是,对TryFindResource的调用失败表示它无法定位资源。如果将定义的样式移动到App.xaml中,它会找到它,但不会在它是自定义控件资源时找到它。
我在做什么错或失踪?
更新
,我呼吁TryFindResource为不驻留在自定义用户控件的自定义按钮。但是,由于我在自定义按钮的构造函数中调用TryFindResource,因此在TryFindResource被调用时,它实际上不会驻留在自定义用户控件上。自定义按钮创建后,它将被添加到自定义用户控件中。也许有不同的方式或地方放置TryFindResource,以便在按钮属于控件后调用它。