Ответ 1
Прикрепленные свойства могут быть установлены из кода через статические вспомогательные методы с именем: "Set" + PropertyName
См. пример С# здесь:
Storyboard.SetTargetName(yourAnimation, "NotifyWindow");
У меня есть StoryBoard в ресурсах
<Window.Resources>
<Storyboard x:Key="Fading" Storyboard.TargetName="NotifyWindow" Storyboard.TargetProperty="Opacity" >
<DoubleAnimation From="1" To="0" Duration="0:0:1">
</DoubleAnimation>
</Storyboard>
</Window.Resources>
А на WindowClosing у меня следующий код
private void NotifyWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Storyboard fading = this.Resources["Fading"] as Storyboard;
if (fading != null && !fadingCompleted)
{
fading.Completed += FadingStoryBoard_Completed;
fading.Begin();
e.Cancel = true;
}
}
private void FadingStoryBoard_Completed(object sender, EventArgs e)
{
fadingCompleted = true;
Close();
fadingCompleted = false;
}
И это прекрасно работает, но я хочу переместить эту раскадровку на другую сборку. Поэтому мне нужно указать код формы StoryBoard.TargetName
. Как я могу это сделать?
Прикрепленные свойства могут быть установлены из кода через статические вспомогательные методы с именем: "Set" + PropertyName
См. пример С# здесь:
Storyboard.SetTargetName(yourAnimation, "NotifyWindow");
Стандартный способ установки свойств зависимостей для объектов зависимостей одинаковый для прикрепленных свойств:
dependencyObjectInstance.SetValue(SampleClass.PropertyName + "Property", value);
В вашем примере:
fading.SetValue(Storyboard.TargetNameProperty, "NotifyWindow");