InvalidOperationException в VS2010

Я использую Expression Blend 4 + Visual Studio 2010 Pro для создания WPF-приложения.

Я создал элемент управления (или должен ли я указать шаблон?) на основе CheckBox, используя только Blend 4, который отлично работает. Однако, когда я перехожу на VS2010, я получаю следующую "ошибку":

Свойство

'[Unknown]' не указывает на объект DependencyObject в пути '(0). (1) [0]. (2)'.

Несмотря на то, что при запуске приложения он работает отлично. Теперь мне не нужно исправлять эту ошибку, но я все равно хотел бы избавиться от нее.

Вот код стиля XAML:

Как вы можете видеть ссылки об ошибках на обеих Storyboards в состояниях Checked and Unchecked. Однако я не согласен с ошибкой в ​​том, что свойство не указывает на объект DependencyObject (независимо от того, что есть...), потому что Target является "эллипсом", который есть; и свойство Target указывает на заполнение формы, которое находится прямо там (Ellipse Fill); в GradientStops [0] GreadientBrush, в котором есть два градиента в RadialGradientBrush; и, наконец, свойство GradientStop Color, которое также существует.

Есть ли у кого-нибудь предложение?

Спасибо заранее.

1 ответ

Кто-то помог мне с решением (я не знаю, назовете ли вы его прямым решением или обходным):

Если вы укажете имя GradientStop, вы можете напрямую ссылаться на его свойство Color:

<ellipse.fill>
 <radialgradientbrush>
 <gradientstop x:name="Offset0" color="Red">
 <gradientstop x:name="Offset1" offset="1" color="#00FF0000">
 </gradientstop></gradientstop></radialgradientbrush>
</ellipse.fill>
[...]
<visualstate x:name="Checked">
 <storyboard>
 <coloranimationusingkeyframes storyboard.targetproperty="Color" storyboard.targetname="Offset0">
 <easingcolorkeyframe keytime="0:0:0.3" value="Red">
 </easingcolorkeyframe></coloranimationusingkeyframes>
 </storyboard>
</visualstate>
<visualstate x:name="Unchecked">
 <storyboard>
 <coloranimationusingkeyframes storyboard.targetproperty="Color" storyboard.targetname="Offset0">
 <easingcolorkeyframe keytime="0:0:0.2" value="#00FF0000">
 </easingcolorkeyframe></coloranimationusingkeyframes>
 </storyboard>
</visualstate>

Я предполагаю, что этот подход не нужен, но он, безусловно, выглядит элегантно.

licensed under cc by-sa 3.0 with attribution.