Как связать свойство, отвечающее за выравнивание текста (TextAlignment), с элементами?

Предположим, у меня есть следующий код (пожалуйста, проигнорируйте его некачественную разметку, я знаю об этом).
  • 1 октября 2023 г. 17:17
Ответы на вопрос 1
Чтобы связать свойство TextAlignment с элементами, вы можете использовать привязку данных в XAML.

Пример кода, который связывает свойство TextAlignment с элементом TextBlock:

```xaml
<StackPanel>
    <TextBlock Text="Привет, мир!" TextAlignment="{Binding Alignment}" />
    <Button Content="Выравнивание по левому краю" Click="Button_Click" />
    <Button Content="Выравнивание по центру" Click="Button_Click" />
    <Button Content="Выравнивание по правому краю" Click="Button_Click" />
</StackPanel>
```

В коде выше, свойство TextAlignment элемента TextBlock связано с неким свойством Alignment (определенным в коде C#) с помощью привязки данных (Binding). 

Убедитесь, что в классе C# (контексте данных) есть свойство Alignment, например:

```csharp
public class MyDataContext
{
    public TextAlignment Alignment { get; set; }
}
```

Чтобы изменить значение свойства Alignment и, соответственно, выравнивание текста в элементе TextBlock, можно использовать обработчики событий Button_Click:

```csharp
private void Button_Click(object sender, RoutedEventArgs e)
{
    Button button = (Button)sender;
    string content = button.Content.ToString();

    MyDataContext context = (MyDataContext)this.DataContext;

    switch (content)
    {
        case "Выравнивание по левому краю":
            context.Alignment = TextAlignment.Left;
            break;

        case "Выравнивание по центру":
            context.Alignment = TextAlignment.Center;
            break;

        case "Выравнивание по правому краю":
            context.Alignment = TextAlignment.Right;
            break;
    }
}
```

Убедитесь, что контекст данных установлен для данного XAML-файла с помощью свойства DataContext (например, в коде C#):

```csharp
this.DataContext = new MyDataContext();
```

Теперь при каждом нажатии на одну из кнопок изменится значение свойства Alignment, а связанный с ним элемент TextBlock будет выравнивать текст в соответствии с этим значением.
Похожие вопросы