Как создать пользовательские кнопки в WPF? - PullRequest
0 голосов
/ 08 марта 2019

(До того, как это будет помечено как дубликат, я хотел бы сказать, что я пробовал ответы на других постах, но они, похоже, не работают для моей конкретной проблемы.)

Я создаю своего рода «игру в карты», где карта разделена на несколько областей. На данный момент вот что у меня есть:

Работает, но не красиво. Я хочу сделать кнопки (в настоящее время это элемент управления Rectangle, но я могу легко это изменить) правильной формы.

Я попытался создать путь в Inkscape, который дал мне этот SVG-путь:

m 283.60033,267.22114 11.61675,32.57742 14.14214,-8.33376 10.35406,-1.01015 11.61676,-5.3033 10.6066,-5.05077 0,-16.66751 -34.85027,-3.78808 -8.08122,2.77792 -14.64721,0.75762 z

Однако, когда я попытался заставить Баттон (и более поздний полигон) использовать путь, он не работал и вместо этого сделал совершенно другую форму.

Кнопки должны иметь цвет фона, который может меняться во время выполнения, поэтому PictureBox не будет работать.

Есть ли причина, по которой Путь не работал? Или, может быть, есть гораздо более простой способ?

РЕДАКТИРОВАТЬ: Вот код, который я использовал для полигона

<Polygon Fill="Blue" Points="283.60033,267.22114 11.61675,32.57742 14.14214,-8.33376 10.35406,-1.01015 11.61676,-5.3033 10.6066,-5.05077 0,-16.66751 -34.85027,-3.78808 -8.08122,2.77792 -14.64721,0.75762" Margin="248,102,956,22" RenderTransformOrigin="0.5,0.5" Grid.ColumnSpan="2"/>

И вот результат, который является той же самой формой, которую я получил, когда пытался изменить форму кнопки (к сожалению, я удалил код для этого):

enter image description here

Вот как это должно выглядеть (путь, нарисованный в Inkscape):

enter image description here

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Я понял это, и это было довольно легко! Мне вообще не нужен был Inkscape.

Я импортировал изображение карты в Blend и проследил область с помощью инструмента «Перо» и превратил его в контур, который я скопировал обратно в Visual Studio.

Пример:

enter image description here

0 голосов
/ 08 марта 2019

Вы уверены, что не перепутали, с какой частью вы выбрали xaml inkscape?

Потому что это примерно верхняя правая часть Пиренейского полуострова. Как ваша нарисованная карта. Примерно так или иначе. Это просто многоугольник - с жесткими краями. То есть, несмотря на то, что вы его произвели, вы не проследили изогнутые / неровные края того, что вы нам показываете.

Также. Если вы посмотрите на данные, которые в нем. Видите, где это начинается?

 m 283.60033,267.22114

Это координаты x, y.

268 пикселей слева, 267 пикселей вниз

Из верхнего левого угла контейнера, в который вы его положили. Это сработает для вас?

...