0

У меня возникла следующая проблема: я хочу сделать так, что бы я смог в разметке Window, где я верстаю приложение, обращаться к свойству Text для TextBlock title и/или hint отдельно, если это возможно. Если это невозможно сделать, тогда как сделать так, чтобы у меня совпадало свойство Text у моих TextBlock'ов Ниже представлен сам стиль для TextBox, который вынесен в словарь ресурсов

<Style x:Key="ProfileTextBox" TargetType="TextBox">
    <Setter Property="FontFamily" Value="{StaticResource BaseFont}"/>
    <Setter Property="FontSize" Value="25"/>
    <Setter Property="FontWeight" Value="Regular"/>
    <Setter Property="Foreground" Value="{DynamicResource WhiteBlackBrush}"/>
    <Setter Property="Background" Value="{DynamicResource BackgroundMainBrush}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="TextBox">
                <Border
                    Padding="20, 15, 20, 15"
                    Height="90"
                    Width="390"
                    CornerRadius="20"
                    BorderThickness="1"
                    BorderBrush="{DynamicResource WhiteBlackBrush}"
                    Background="{TemplateBinding Background}">
                &lt;StackPanel Orientation=&quot;Vertical&quot;&gt;
                    &lt;TextBlock x:Name=&quot;title&quot; Text=&quot;Заголовок&quot; FontSize=&quot;20&quot; FontWeight=&quot;Light&quot;/&gt;
                    &lt;Grid&gt;
                        &lt;ScrollViewer x:Name=&quot;PART_ContentHost&quot; VerticalAlignment=&quot;Center&quot;/&gt;

                        &lt;TextBlock
                        x:Name=&quot;hint&quot;
                        VerticalAlignment=&quot;Center&quot;
                        TextAlignment=&quot;Left&quot;
                        Text=&quot;Поле ввода&quot;
                        Foreground=&quot;#CCCCCC&quot;
                        IsHitTestVisible=&quot;False&quot;
                        Visibility=&quot;Collapsed&quot;/&gt;
                    &lt;/Grid&gt;
                &lt;/StackPanel&gt;
            &lt;/Border&gt;

            &lt;ControlTemplate.Triggers&gt;
                &lt;MultiTrigger&gt;
                    &lt;MultiTrigger.Conditions&gt;
                        &lt;Condition Property=&quot;Text&quot; Value=&quot;&quot;/&gt;
                    &lt;/MultiTrigger.Conditions&gt;
                    &lt;Setter TargetName=&quot;hint&quot; Property=&quot;Visibility&quot; Value=&quot;Visible&quot;/&gt;
                &lt;/MultiTrigger&gt;

            &lt;/ControlTemplate.Triggers&gt;
        &lt;/ControlTemplate&gt;
    &lt;/Setter.Value&gt;
&lt;/Setter&gt;

</Style>

  • Привязки же, Binding. Не вам надо текст в текстблоки засовывать, надо текстблокам сказать, где этот текст брать с помощью привязок, все наоборот в WPF работает. – aepot Jan 24 '22 at 20:14
  • @aepot я понял, что ты имел ввиду, но вот как мне потом в xaml коде моего основного окна, где я верстаю всё передать TextBlock title или hint нужное мне значение? – Designeed Jan 24 '22 at 20:32
  • https://ru.stackoverflow.com/a/1317561/373567 – aepot Jan 24 '22 at 20:37
  • @aepot не могу понять, как мне прибиндиться к свойству Text моих TextBlock'ов. Я просто реализую стиль ProfileTextBox для TextBox в основном окне, где находится весь интерфейс приложения. И как в таком случае после наследования обращаться к свойству text TextBlock? – Designeed Jan 24 '22 at 20:56
  • Создайте юзерконтрол, я же вам скинул пример. Если не хотите, то прямо в стиле надо привязываться к свойствам вьюмодели. Это уж как вам больше нравится. – aepot Jan 24 '22 at 21:00
  • @aepot Неужели никак нельзя обойтись без viewmodel? мне просто нужно сверстать экран, в котором есть поля ввода, где изменяется заголовок самих полей и всё – Designeed Jan 24 '22 at 21:13
  • Ну как-то наверное можно, но я без MVVM в WPF не суюсь, так что не подскажу. Сложно и бессмысленно воевать с контролами. Проще использовать их так, как задумано разработчиками. https://ru.stackoverflow.com/a/1266479/373567 – aepot Jan 24 '22 at 21:57
  • @aepot ну понял, спасибо большое. Вынесу из словаря ресурсов в User control и попробую реализовать через viewmovel. И ещё вопрос. много user control'ов на экране это нормально или лучше воздержаться? – Designeed Jan 24 '22 at 22:17
  • Юзерконтрол - то же самое что и контрол, только сделан вами, а не разработчиками WPF. Я не знаю, как ответить на ваш вопрос. – aepot Jan 25 '22 at 07:14

0 Answers0