У меня есть настроенный элемент управления WPF, производный от UserControl. В разделе «Ресурсы» в моем файле XAML у меня есть несколько шаблонов и стилей, определенных для элементов, которые будут отображаться в моем пользовательском элементе управления.
Вот определение для одного из моих стилей рисования стрелки, направленной вниз.
<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>
Итак, у меня есть пользовательский нижний объект, полученный из кнопки. По сути это небольшая квадратная кнопка со стрелкой. В моем конструкторе для моей пользовательской кнопки у меня есть следующий код.
Path Arrow = new Path();
Arrow.Style = TryFindResource("ArrowStyle") as Style;
Однако вызов TryFindResource завершается неудачно, указывая, что он не может найти ресурс. Если я переместлю определенный стиль в App.xaml, он найдет его, но не тогда, когда это будет пользовательский элемент управления.
Что я делаю неправильно или отсутствует?
Обновление
Пользовательская кнопка, для которой я вызываю TryFindResource, находится в пользовательском элементе управления. Однако, поскольку я вызываю TryFindResource в конструкторе пользовательской кнопки, он фактически не будет находиться в пользовательском элементе управления во время вызова TryFindResource. После создания пользовательской кнопки она будет добавлена в пользовательский элемент управления. Возможно, существует другой способ или место для размещения TryFindResource, чтобы он вызывался после того, как кнопка принадлежит элементу управления.