powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Взаимодействие UserControl в рамках приложения
25 сообщений из 99, страница 3 из 4
Взаимодействие UserControl в рамках приложения
    #39816332
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Eld Hasp, 17 май 19, 19:55 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21887597][21887597]
>1) Вы используете для вывода простого текста Label.
<Последовал Вашему совету - заменил на пробу в одной панели Label на TextBlock. Подскажите как в TextBlock размещать текстовый контент по вертикали и горизонтали, а то бирки как-то не очень хорошо рисуются
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816382
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Ты не стесняйся. Не бери его только label.
Время есть, весь его пример изучи.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816454
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев<Последовал Вашему совету - заменил на пробу в одной панели Label на TextBlock. Подскажите как в TextBlock размещать текстовый контент по вертикали и горизонтали, а то бирки как-то не очень хорошо рисуются
Честно говоря как-то надобности не былою
На вскидку, в голову приходит два варианта
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    <StackPanel Height="169" VerticalAlignment="Bottom">
        <StackPanel.Resources>
            <sys:String x:Key="Digits">1234567890</sys:String>
        </StackPanel.Resources>
        <TextBlock Text="{StaticResource Digits}" RenderTransformOrigin="0,1">
            <TextBlock.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform Angle="90"/>
                    <TranslateTransform/>
                </TransformGroup>
            </TextBlock.RenderTransform>
        </TextBlock>
    </StackPanel>



Код: xml
1.
2.
3.
4.
5.
6.
    <StackPanel Height="169" VerticalAlignment="Bottom">
        <StackPanel.Resources>
            <sys:String x:Key="Digits">1234567890</sys:String>
        </StackPanel.Resources>
        <ItemsControl ItemsSource="{StaticResource Digits}"/>
    </StackPanel>
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816471
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Eld Hasp, сегодня, 13:39 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21890701][21890701]
>...На вскидку, в голову приходит два варианта ...
<Спасибо.
Но остаюсь при своем:
label.VerticaContentAlignment = VerticaAlignment.Center;
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816472
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот ещё пример - поворот до размещения
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    <StackPanel Orientation="Horizontal">
        <StackPanel.Resources>
            <sys:String x:Key="Digits">1234567890</sys:String>
        </StackPanel.Resources>
        <TextBlock Text="{StaticResource Digits}">
            <TextBlock.LayoutTransform>
                    <RotateTransform Angle="90"/>
            </TextBlock.LayoutTransform>
        </TextBlock>
    </StackPanel>
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816476
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев>Eld Hasp, сегодня, 13:39 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21890701][21890701]
>...На вскидку, в голову приходит два варианта ...
<Спасибо.
Но остаюсь при своем:
label.VerticaContentAlignment = VerticaAlignment.Center;
Так я не понял Вам повёрнутый текст нужен или его центрирование по вертикали и горизонтали в контейнере?
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
    <Grid>
        <Grid.Resources>
            <sys:String x:Key="Digits">1234567890</sys:String>
        </Grid.Resources>
        <TextBlock Text="{StaticResource Digits}"
                   VerticalAlignment="Center"
                   TextAlignment="Center"/>
    </Grid>
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816505
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Eld Hasp, сегодня, 13:55 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21890735][21890735]
>Так я не понял Вам повёрнутый текст нужен или его центрирование по вертикали и горизонтали в контейнере?
<Я использую выравнивание контента так:
1.label.VerticalContentAlignment = {VerticaContentAlignment.Center;VerticalContentAlignment.Тор;...} или или VerticalContentAlignment={"Center","Top",...}
2.label.HorizontalContenAlignment = {HorizontalContentAlignment.Center;HorizontalContentAlignment.Тор;...} или HorizontalAlignment={"Center","Top",...}
повернутый текст пока не применял
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816515
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев>Eld Hasp, сегодня, 13:55 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21890735][21890735]
>Так я не понял Вам повёрнутый текст нужен или его центрирование по вертикали и горизонтали в контейнере?
<Я использую выравнивание контента так:
1.label.VerticalContentAlignment = {VerticaContentAlignment.Center;VerticalContentAlignment.Тор;...} или или VerticalContentAlignment={"Center","Top",...}
2.label.HorizontalContenAlignment = {HorizontalContentAlignment.Center;HorizontalContentAlignment.Тор;...} или HorizontalAlignment={"Center","Top",...}
повернутый текст пока не применял
Я в начале подумал, что вам текст надо выводить, то по горизонтали, то по вертикали.

А обычное выравнивание я показа в предыдущем посте.
Если в CB то так
Код: c#
1.
2.
3.
            textBlock.VerticalAlignment = VerticalAlignment.Center;
            textBlock.HorizontalAlignment = HorizontalAlignment.Center;
            textBlock.TextAlignment = TextAlignment.Center;
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816550
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Eld Hasp, сегодня, 14:34 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21890801][21890801]
>...Если в CB то так...
< Повторяю, контент выравниваю так:
label.VerticalContentAlignment = VerticalContentAlignment.Center;

а так сделать нельзя:
textBlock.VerticalContentAlignment = VerticalContentAlignment.Center;
или
textBlock.HorizontalContentAlignment = HorizontalContentAlignment.Left;
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816661
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеева так сделать нельзя:
textBlock.VerticalContentAlignment = VerticalContentAlignment.Center;
или
textBlock.HorizontalContentAlignment = HorizontalContentAlignment.Left;
Нет.
Это свойства класса Control. Его наследник ContentControl? а от него Label, ButtonBase и др.
А TextBlock ycktletn напрямую от FrameworkElement.

Мне трудно, Вам конкретно подсказать, не зная Вашей цели. Кроме того, я UI элементы? вообще, в принципе не создаю в коде - только в XAML. Возможно некоторые вещи к коде проще сделать по другому.

В XAML - 90% делается автоматически дизайнером-конструктором, сразу видны результаты работы, легко корректировать, исправлять.
В коде, в принципе, знаю как всё это повторить, но это муторно. На одну строчку XAML? которая создаётся в два-три клика и десяток введённых символов, в C# требуется пол листа вслепую написать.

Что касается данного случая. То, по моим догадкам, Вам нужен элемент для вывода текста. С центральным выравниванием по вертикали и левым по горизонтали во включающем контейнере.
Если фон элемента не нужен, то так будет выводить TextBlock с такими свойствами
Код: c#
1.
            textBlock.VerticalAlignment = VerticalAlignment.Center;

По умолчанию горизонтальное выравнивание в TextBox для элемента для HorizontalAlignment = Stretch и для TextAlignment = Left. Поэтому их задавать не надо.

Если же нужен фон в размер контейнера и вертикальное центрирование на этом фоне, то фон надо устанавливать у контейнера, а не TextBlock
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816670
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для вывода не форматированного текста можно использовать TextBox в режиме только для чтения.
Он тоже наследник Control->TextBoxBase->TextBox. И у него есть свойств для выравнивания содержимого.
Так как Вы использовали Label? то вряд ли Вы выводили форматированный текст, так что TextBox должен Вам подойти.
Код: c#
1.
2.
3.
4.
5.
            TextBox textBox = new TextBox()
            {
                VerticalContentAlignment = VerticalAlignment.Center,
                IsReadOnly = true
            };
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816672
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TextBlock это по сути примитив, хоть он и является элементом управления и сам состоит из других элементов. Его обычно использую в шаблонах элементов управления (ControlTemplate, DataTemplate), как примитивный элемент отображения.

А в макетировании\верстке элементов управления (Window, UserControl, DataTemplate) Label вполне уместен и предоставляет возможности переключения фокуса на связанный элемент управления с помощью горячих клавиш. Так как шаблоном по умолчанию для ContentPresenter'ов это TextBlock, содержимое будет всё равно в TextBlock'е. в Label можно будет добавить картинку или другие "фишички".
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816752
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Eld Hasp, сегодня, 17:09 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891024][21891024]
>...Так как Вы использовали Label?...
<Так:
<Label Grid.Column="1" Grid.Row="0" x:Name="lbl_Заголовок" HorizontalAlignment="Center" VerticalAlignment="Center" Height="26" Width="117" Background="Yellow" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Visibility="Visible" Content="Сотрудники" />
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816813
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев>Eld Hasp, сегодня, 17:09 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891024][21891024]
>...Так как Вы использовали Label?...
<Так:
<Label Grid.Column="1" Grid.Row="0" x:Name="lbl_Заголовок" HorizontalAlignment="Center" VerticalAlignment="Center" Height="26" Width="117" Background="Yellow" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Visibility="Visible" Content="Сотрудники" />Из этого определения, на мой взгляд, избыточно Grid.Row="0" и Visibility="Visible" это и так значения по умолчанию. Зачем их явно прописывать.
И имя элемента. Я имена использую только если они нужны для привязок внутри XAML. И то, чаще всего, дефолтное название создаваемое дизайнер-конструктором XAML.
Все эти центрирования и явное задание размеров можно заменить на Padding

Посмотрите такое определение. По-моему, визуально тоже самое, но короче
Код: xml
1.
2.
3.
4.
        <TextBlock Grid.Column="1" 
               HorizontalAlignment="Center" VerticalAlignment="Center"
               Background="Yellow"  Padding="20,5"
               Text="Сотрудники"/>
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816822
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Eld Hasp, сегодня, 22:46 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891331][21891331]
>...Посмотрите такое определение. По-моему, визуально тоже самое, но короче...
<Сделал так:
Код: xml
1.
    <TextBlock Grid.Column="1"  HorizontalAlignment="Center" VerticalAlignment="Center"  Background="Yellow"  Padding="20,5"  Text="Сотрудники" Width="188" />


имею:
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816827
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев>Eld Hasp, сегодня, 22:46 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891331][21891331]
>...Посмотрите такое определение. По-моему, визуально тоже самое, но короче...
<Сделал так:
Код: xml
1.
    <TextBlock Grid.Column="1"  HorizontalAlignment="Center" VerticalAlignment="Center"  Background="Yellow"  Padding="20,5"  Text="Сотрудники" Width="188" />


имею: Width="188" забыли убрать.
И, по-моему, можно убрать VerticalAlignment="Center" , но это зависит от установки строки Grid. Если там Auto, то можно убирать.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816843
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Eld Hasp, вчера, 23:45 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891365][21891365]
>Width="188" забыли убрать.
<Да нет, я изменяю размер желтого поля, а текст должен находится там, где мне надо (к примеру, по центру желтого поля или слева)
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39816926
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев>Eld Hasp, вчера, 23:45 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891365][21891365]
>Width="188" забыли убрать.
<Да нет, я изменяю размер желтого поля, а текст должен находится там, где мне надо (к примеру, по центру желтого поля или слева)Позвольте задать вопрос, а для чего Вы изменяете (при чём явно) размер этого поля?
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39817117
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Eld Hasp, сегодня, 10:30 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891582][21891582]
>Позвольте задать вопрос…
<Я рассматриваю желтое поле и текст как шильдик, наклеенный на прибор. UserControl не совсем окно, как то надо показать что оно есть. Не знаю, как ещё объяснить.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39817173
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
По дизайну это Г.
Хош верь, хош не верь.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39817262
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 15:04 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21892095][21892095]
>По дизайну это Г. …
<На вкус на цвет. Но и шедевром своё творение не считаю. Дизайн не мой конёк. Функционально этот инструмент делает то что надо.
По сути дизайна - на правой панели нет шильдика и (для меня) как то не так.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39817265
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Ну а зачем тут на форуме учить людей плохому дизайну?
Удачи.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39817277
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеев>Eld Hasp, сегодня, 10:30 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891582][21891582]
>Позвольте задать вопрос…
<Я рассматриваю желтое поле и текст как шильдик, наклеенный на прибор. UserControl не совсем окно, как то надо показать что оно есть. Не знаю, как ещё объяснить.Я не за это.
Пусть шильдик. Дело Ваше.
Но зачем явно задавать размер?
Уберите Width="188" и посмотрите результат.
Вообще, в WPF явное задание размеров используется очень редко.
И VerticalAlignment="Center" тоже уберите - он, в данном случае, тоже не нужен.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39817286
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eld Hasp,
+1 это как верстка html. Кругом наследование стилей и очень очень редкое перекрытие или абсолютные значения.
Максимум параметров по умолчанию.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39817302
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Eld Hasp,
+1 это как верстка html. Кругом наследование стилей и очень очень редкое перекрытие или абсолютные значения.
Максимум параметров по умолчанию.Ну, как я понял, WPF и создавался с учётом опыта работы с HTML.
...
Рейтинг: 0 / 0
25 сообщений из 99, страница 3 из 4
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Взаимодействие UserControl в рамках приложения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]