2012-05-30 6 views
0

Я работаю над следующим кодом .. Конечно, решение получается и компилирует все это, но когда я нажимаю F5 или начинаю, я получаю следующее сообщение об ошибке.Ошибка преобразования с определением стиля в WPF

Невозможно преобразовать значение в атрибуте «Стиль» в объект типа «System.Windows.Style». Может основываться только на стиле с типом цели, который является базовым типом «Прямоугольник». Ошибка в объекте 'System.Windows.Shapes.Rectangle' в файле разметки

Это код:

<Style x:Key="Connector1" TargetType="Rectangle" BasedOn="{StaticResource Style123}"> 
    <Setter Property="Fill" Value="Aqua" /> 
</Style> 
<Style x:Key="Connector1_DragThumb" TargetType="Rectangle" BasedOn="{StaticResource Style123}"> 
    <Setter Property="IsHitTestVisible" Value="true"/> 
    <Setter Property="Fill" Value="Yellow"/> 
    <Setter Property="Stroke" Value="Black"/> 
</Style> 

Любая помощь приветствуется.

С уважением.

ответ

1

Ошибка указывает на то, что StaticResource Style123, на котором вы основываете этот стиль, не имеет TargetType="Rectangle".

Вы можете использовать только стиль Rectangle на другом Rectangle стиле или его базовом классе (или по умолчанию с использованием {StaticResource {x:Type Rectangle}}).

+2

Ваше последнее утверждение неверно. Требование состоит в том, что «TargerType» стиля равен или определяется «TargetType» стиля «BasedOn». 'Shape' работал бы, например, –

+0

Привет, Джей, спасибо ... Я получил это и отлично работал. Теперь я знаю, как это работает, но что такое User Control? как я могу обращаться с User Control с той же целью? –

+0

Hi Meleak, ошибка была выбрана из-за того, что style123 использовался для Path, например.