Недавно мне нужно было изменить шаблон большого пальца.Я хочу изменить его форму на треугольник, как это.Я использовал Path как его ControlTemplate.Вот код:
<Thumb
Width="100"
Height="30"
HorizontalAlignment="Left"
VerticalAlignment="Top">
<Thumb.Template>
<ControlTemplate>
<Path Fill="Red">
<Path.Data>
<PathGeometry>
<PathFigure>
<PolyLineSegment>
<PolyLineSegment.Points>
<PointCollection>
<Point X="0" Y="0" />
<Point X="{TemplateBinding Width}" Y="{TemplateBinding Height}" />
<Point X="0" Y="{TemplateBinding Height}" />
</PointCollection>
</PolyLineSegment.Points>
</PolyLineSegment>
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
</ControlTemplate>
</Thumb.Template>
</Thumb>
Вы видите, что я пытался привязать PolyLineSegment.Points к ширине и высоте большого пальца.
Но Visual Studio выдает ошибку:
"Ошибка Объект типа 'System.Windows.TemplateBindingExpression'
не может быть преобразован в тип 'System.Double'. "
Я не знаю, почему это не может работать.Кто-нибудь может дать мне подсказку?
Обновление:
Я обнаружил, что это потому, что Point.X или Point.Y не является свойством зависимости.Вот почему привязка не работает.
Я решаю этот вопрос путем привязки к LineSegment. Этот вопрос закрыт.