Я пытаюсь использовать способ повторного использования векторной графики во всех приложениях. Мой нынешний подход - иметь графику в UserControls, он отлично работает, но мне это не нравится. Я пытаюсь установить графику с помощью ControlTemplates, с этой целью я создал пустой «BlankControl», который наследует Control, и ничего не делает (пока).Полигон внутри ControlTemplate бросает странное исключение в Windows 8.1 app
Проблема, с которой я столкнулась, заключается в попытке применить контрольную таблицу, содержащую многоугольник (все остальные работы работают нормально).
Это проблематично ControlTemplate:
<ControlTemplate TargetType="sharedcontrols:BlankControl" x:Key="controlTemplate">
<Viewbox>
<!--This file is compatible with Silverlight-->
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Name="Capa_1" Width="62.627" Height="63.636" Canvas.Left="0" Canvas.Top="0">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0"/>
</Canvas.RenderTransform>
<Canvas.Resources/>
<!--Unknown tag: metadata-->
<!--Unknown tag: sodipodi:namedview-->
<Canvas Name="g3">
<Canvas Name="g5">
<Canvas Name="g7">
<Ellipse Fill="White" Width="55" Height="55" Canvas.Left="5" Canvas.Top="5"/>
<Path xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="path9" Fill="Blue" Data="M32.55 56.896c-13.674 0-24.795-11.123-24.795-24.795 c0-13.674 11.121-24.795 24.795-24.795s24.795 11.121 24.795 24.795C57.345 45.772 46.224 56.896 32.55 56.896z M32.55 3.101 c-15.994 0-29 13.006-29 29s13.006 29 29 29s29-13.006 29-29S48.544 3.101 32.55 3.101z"/>
<Polygon Points="0,0 8,5, 0,10" Stroke="Black" Fill="Black" />
</Canvas>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ControlTemplate>
Как я уже говорил, если я удалить многоугольник, он делает отлично, но полигон портит все вверх, он бросает следующее исключение:
Error Unable to cast object of type 'Windows.UI.Xaml.Media.PointCollection' to type 'System.Windows.Media.PointCollection'.
Действительно, действительно странная ошибка, кажется, что PointCollection, который я передаю, имеет другой тип. Более того, даже если я беру многоугольник из ControlTemplate и размещаю его где-нибудь еще на XAML, он отображает ОК, поэтому проблема кроется в ControlTemplate.
Любые идеи?
Спасибо
Нет решения, да? Dang. Это то же самое в Windows UWP. –
Разочаровавшись, я ожидал, что UWP будет менее дерьмовым, чем WinRT. –
Это потому, что вы думаете о них как о двух разных вещах. Только один. –