Программно создаёт кликабельную область на изображении - PullRequest
0 голосов
/ 28 марта 2010

Я пытаюсь создать "imagemaps" для изображения в wpf, используя codebehind.

См. Следующий XML:

<Button Type="Area">
  <Point X="100" Y="100"></Point>
  <Point X="100" Y="200"></Point>
  <Point X="200" Y="200"></Point>
  <Point X="200" Y="100"></Point>
  <Point X="150" Y="150"></Point>
</Button>

Я пытаюсь перевести это на кнопку определенного изображения в моем приложении WPF.

Я уже сделал часть этого, но я застрял при установке полигона в качестве «шаблона» кнопки:

    private Button GetAreaButton(XElement buttonNode)
    {
        // get points
        PointCollection buttonPointCollection = new PointCollection();

        foreach (var pointNode in buttonNode.Elements("Point"))
        {
            buttonPointCollection.Add(new Point((int)pointNode.Attribute("X"), (int)pointNode.Attribute("Y")));
        }

        // create polygon
        Polygon myPolygon = new Polygon();
        myPolygon.Points = buttonPointCollection;
        myPolygon.Stroke = Brushes.Yellow;
        myPolygon.StrokeThickness = 2;

        // create button based on polygon
        Button button = new Button();
        ?????
    }

Я также не уверен, как добавить / удалить эту кнопку на моем изображении, но я смотрю на это.

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

1 Ответ

0 голосов
/ 19 апреля 2010

См. Эту статью Роба Рельея здесь , я думаю, что она отвечает на ваш вопрос.

 //Create a button from scratch
        Button perhapsButton = new Button();
        perhapsButton.Content = "Perhaps"
        perhapsButton.Click += new RoutedEventHandler(perhapsButton_Click);
        container.Children.Add(perhapsButton);

Учтите, что вы можете установить непрозрачность кнопки равной 0, чтобы сделать ее невидимой.

...