Загрузка данных


<Window x:Class="MarathonSkills.InteractiveMapWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="InteractiveMapWindow" Height="500" Width="800">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="280"/>
        </Grid.ColumnDefinitions>

        <Canvas Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" Width="500" Height="500">
            <Image Source="map-network7.png" Width="500" Height="500" Stretch="UniformToFill"/>

            <!-- Линия маршрута (координаты подогнаны под центры кнопок) -->
            <Polyline Points="315,55 395,195 365,335 165,435" 
                      Stroke="OrangeRed" StrokeThickness="3" StrokeDashArray="2,1"/>

            <Button Content="1" Canvas.Left="300" Canvas.Top="40" Style="{StaticResource MapPointStyle}" Click="Point_Click" Tag="Стадион Лужники. Особенности: Еда, вода, туалет, медпункт"/>
            <Button Content="2" Canvas.Left="380" Canvas.Top="180" Style="{StaticResource MapPointStyle}" Click="Point_Click" Tag="Набережная. Особенности: Питьевая вода, еда"/>
            <Button Content="3" Canvas.Left="350" Canvas.Top="320" Style="{StaticResource MapPointStyle}" Click="Point_Click" Tag="Парк Горького. Особенности: Медпункт, туалет."/>
            <Button Content="4" Canvas.Left="150" Canvas.Top="420" Style="{StaticResource MapPointStyle}" Click="Point_Click" Tag="Метро. Особенности: Выход в город."/>
        </Canvas>

        <StackPanel Grid.Column="1" Background="#E2E2E2" Margin="10">
            <TextBlock x:Name="CheckpointName" Text="Выбор пункта..." FontSize="20" FontWeight="Bold" Margin="10"/>
            <TextBlock x:Name="CheckpointDesc" Text="Нажмите на иконку на карте" TextWrapping="Wrap" Margin="10" FontSize="16"/>
        </StackPanel>
    </Grid>
</Window>



using System;
using System.Windows;
using System.Windows.Controls;

namespace MarathonSkills
{
    public partial class InteractiveMapWindow : Window
    {
        public InteractiveMapWindow()
        {
            InitializeComponent();
        }

        private void Point_Click(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;
            if (btn != null)
            {
                CheckpointName.Text = "Checkpoint " + btn.Content.ToString();
                CheckpointDesc.Text = btn.Tag.ToString();
            }
        }
    }
}