powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Взаимодействие UserControl в рамках приложения
24 сообщений из 99, страница 4 из 4
Взаимодействие UserControl в рамках приложения
    #39817343
Супер_Пав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По дизайну я как в 90е вернулся =)))
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39817361
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Eld Hasp, сегодня, 17:04 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21892308][21892308]
>Но зачем явно задавать размер?
Уберите Width="188" и посмотрите результат.
Вообще, в WPF явное задание размеров используется очень редко.
<Убрал.
Мне хотелось бы иметь более или менее одинаковый размер шильдика. Вы же предлагаете заменить Width на Padding, т.е. явное заменяете на неявное + нудная подгонка размера поля под контент. Тем не менее Вашим советом воспользуюсь. Спасибо.
Код: xml
1.
2.
<TextBlock Grid.Column="1"  HorizontalAlignment="Center" Background="Yellow"  Padding="20,5"  Text="Сотрудники" />
<!--<Label  Grid.Column="1" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center" Height="26" Width="127" Background="Yellow" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Content="Сотрудники"/>-->
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39817370
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВМоисеевМне хотелось бы иметь более или менее одинаковый размер шильдика. Вы же предлагаете заменить Width на Padding, т.е. явное заменяете на неявное + нудная подгонка размера поля под контент. Тем не менее Вашим советом воспользуюсь. Спасибо.

Поймите, если делать, то делать. А вот это фраза "хотелось бы иметь более или менее одинаковый размер" звучит, ну, как-то очень не по программистски.

Если Вам нужно сделать одинаков, и, именно, так Вам нужно по дизайну, то и делайте одинаково.
Объявите в VM или в View ресурсах, соответствующую, переменную и стиль и привяжите все шильдики (по инглиш Label, наверное?) к этой переменной и стилю. Тогда всё будет комильфо.
В этом стиле и Label ляжет красиво.

Вот пример. Объявляете обычно в словаре и потом подключаете к ресурсом на уровне выше всех ваших окон где это используется
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
        <sys:Double x:Key="MainLabel.MinWidth">190</sys:Double>
        <Style TargetType="Label" x:Key="MainLabel.Style">
            <Setter Property="HorizontalAlignment" Value="Center"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
            <Setter Property="HorizontalContentAlignment" Value="Center"/>
            <Setter Property="VerticalContentAlignment" Value="Center"/>
            <Setter Property="Background" Value="Yellow"/>
            <Setter Property="MinWidth" Value="{DynamicResource MainLabel.Width}"/>
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate DataType="{x:Type sys:String}">
                        <TextBlock Text="{Binding Mode=OneTime}" Margin="5" 
                                 HorizontalAlignment="Center" 
                                 VerticalAlignment="Center"
                                 TextAlignment="Center"/>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>



А по месту в окне просто прописываете
Код: xml
1.
        <Label Style="{StaticResource MainLabel.Style}">Сотрудники</Label>



Тогда все "шильдики" будут одинаковые по оформлению, в том числе по ширине (если текст помещается).
И оформление их всех будет в одном месте. А не раскидано по всем окнам.

И если у Вас в целом дизайн окна однотипный, то не только "шильдики" надо поместить в стиль, а весь дизайн целиком.
Ну, представьте себе, что это подпрограмма. Вызываете подпрограмму (стиль) и она создаёт Вам общий дизайн.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39817377
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Eld Hasp, сегодня, 21:31 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21892513][21892513]
>...И если у Вас в целом дизайн окна однотипный, …
<Есть стремление к этому - дизайн панелей в принципе однотипный.
Пока сделал "болванку". Копируешь и переименовываешь 2 файла и далее правишь нужное ручками. На сегодня имею 2 типа панелей - панели с дата гридом для отображения выборки и панели с Label, TextBox, DatePicker для отображения уточняющих параметров сущности.
За интересную подсказку спасибо.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818096
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>Eld Hasp, сегодня, 21:31 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21892513][21892513]
>...И если у Вас в целом дизайн окна однотипный, …
<Есть стремление к этому - дизайн панелей в принципе однотипный.
Пока сделал "болванку". Копируешь и переименовываешь 2 файла и далее правишь нужное ручками. На сегодня имею 2 типа панелей - панели с дата гридом для отображения выборки и панели с Label, TextBox, DatePicker для отображения уточняющих параметров сущности.
За интересную подсказку спасибо.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818128
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Разбираем дизайн а-ля 90ые.
"Панели" это у тебя аналог форм или окон винды?
Тогда как премещать, закрывать, сворачивать, обзывать, распахивать, мигать, выравнивать и прогрессбарить в панели задач?
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818129
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos, упс... Вопрос автору)
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818163
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 10:18 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893656][21893656]
>"Панели" это у тебя аналог форм или окон винды?
<"Панель" есть UserControl WPF. Точка. Содержит "внутри себя" данные, команды и способ отображения.
Располагаются на MainWindow. Некий аналог SPA (одностраничное приложение).
Работу в рамках а-ля SPA сложно описать на пальцах. Легче привести код. Используется следующий интерфейс:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  interface IMainWindow  {
    void tmrStart();                                               //-- запуск таймера   
    void tmrStop();                                                //-- останов таймера   
    UserControl get_Стек();                                   //-- показ панели вершины стека(UserControl) 
    void uc_Добавить(string ucName, Object obj);   //-- добавить новую панель (UserControl) 
    void uc_ДобавитьФ(string ucName, Object obj); //-- добавить новую панель (UserControl) фильтра 
    void uc_Удалить();                                           //-- удаление панели (UserControl) 
    void uc_Заменить(string ucName, Object obj);   //-- замена панели (UserControl) 
    UserControl uc_КтоЗагрузил();                         //-- получение панели-загрузчика
    int i_КтоЗагрузил();                                         //-- получение панели-загрузчика
    int uc_тмУровень(out int u);                             //-- получение уровня панели-загрузчика  
    void uc_ЗапросДанных();                                //-- вызов панельного метода данных  
  }


к примеру, новая панель добавляется так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    //-- Добавим и покажем новый UserControl
    public void uc_ДобавитьФ(string Name, Object obj) { bl_Фильтр = true; uc_Добавить(Name, obj); }
    public void uc_Добавить(string Name, Object obj) {
      if (Name == null) return;
      ucName = Name;
      oUC = obj;
      //-- Деактивируем верхнюю панель 
      UserControl uc = get_Стек();
      if (uc != null) uc.IsEnabled = false;
      //-- Покажем новую панель
      Загрузить();
      ShowControls();
      uc_ЗапросДанных(); //-- Запрос данных
    }


удаляется так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    //-- Удалим последний и покажем предпоследний UserControl
    public void uc_Удалить() {
      UserControl uc=pop_Стек();
      if (uc != null) grd_Главная.Children.Remove(uc);
      if ((uc = get_Стек()) != null) {
        uc.VerticalAlignment = VerticalAlignment.Bottom;
        uc.HorizontalAlignment = HorizontalAlignment.Right;
        uc.Margin = new Thickness(0, 0, 5, 5);
        uc.IsEnabled = true;
        ((I_Плитка)uc).uc_cmdVisibility(Visibility.Visible);
      }
      else btc_Visibility(Visibility.Visible);
      ucNew = null;
    }


Как будет раскрашена панель - дело дизайнера.
Меня интересовал способ обмена данными между панелями.
Не помню, кто ещё делал подобный интерфейс в 90-е. Для WinForm несколько большая возня с панелями при загрузке и удалении.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818175
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Вроде простой вопрос от не программиста задал.
Вверху на скрине Панель имени ВМоисеева (так буду называть) это для НЕ ПРОГРАММИСТА окно винды?
..
Если не понял, то потом возьму скрин и обведу красным.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818176
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевНекий аналог SPAтсссс. В десктопе разделах такое не говори.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818192
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 13:51 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893768][21893768]
>Если не понял, то потом возьму скрин и обведу красным.
<Не понял и скрина нет. Это имел ввиду?
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818193
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Раньше.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818200
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Retro123, сегодня, 15:27 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893821][21893821]
>Раньше.
<В холодно-горячо решил поиграть?
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818205
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
А как ты с пользователями разговариваешь?
Они спросят - а вот это окошко (скрин) которое вы назвали панелью, как закрыть-свернуть?
А ты ему что?
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818213
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 15:44 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893837][21893837]
>А ты ему что?
>У активной панели (с какой работаешь в данный момент) есть две кнопки: выход и подстановка+выход. Обе удаляют панель и делают активной предыдущую.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818225
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Он тебе скажет по телефону - не вижу кнопку!!!
Пакажи на скрине. Я тоже не вижу.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818238
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 16:45 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893876][21893876]
>...Пакажи на скрине. Я тоже не вижу…
<См. например здесь , здесь и здесь
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818246
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Красня стрелка? Ужассссссс.
А крестик в левом верхнем углу не догадался?
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818258
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 19:43 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893924][21893924]
>...А крестик в левом верхнем углу не догадался?
<Все функциональные кнопки собраны в одном столбце грида. Так удобнее.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818266
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,
Вот поэтому тебе сложно в дизайне. Ты просто не видишь очевидного.
- я спросил, почему не в ВЕРХНЕМ ЛЕВОМ углу.
- ты ответил что все собраны а одном столбце.
Неужели ты не понял, что можно делать в одном столбце, НО ВВЕРХУ?
Удачи тебе)
О дизайне бесполезно.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818291
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 21:43 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893953][21893953]
>...О дизайне бесполезно.
<Видимо да, но обрати внимание на это . Да и крестик не отражает суть - стрелка есть переход к вызывающей панели
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818301
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевстрелка есть переход к вызывающей панелиКруто))
А когда закрываем окно, то мы "закрываем" или "переходим к вызывающей")) LOL
У тебя особый мир. Все закрывают, а у тебя - "переход".
У тебя кнопки наверно тоже - вместо ОК\Cancel - Перейти\Остаться)
...
Ладно, заканчиваем. Неинтересно. Делай свои "панели".
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818328
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Petro123, сегодня, 00:54 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893997][21893997]
>...Ладно, заканчиваем. Неинтересно. Делай свои "панели"...
<Да, с тобой надо заканчивать. Полезной информации от тебя ноль.
Но на всякий случай, не для тебя, есть задача работы со списком Персоны (таблица Персоны). Из окна вызываем инструмент Персоны (UserControl uc_Персоны). Персонами могут быть пришлые или сотрудники.
1. Если пришлые, то общую информацию (для таблицы Персоны) задаем в строке грида, детальную (для таблицы ПерсоныД) в панели ПерсоныД (UserConrtol uc_ПерсоныД)
2. Если сотрудники, то вызываем панель ПерсоныД, клик на желтом Сотрудник для вызова панели Сотрудники. Сотрудник может иметься в таблице Сотрудники, а может и нет. Если позволяют права Пользователя, можно ввести нового сотрудника или посмотреть информацию о нем - общую в гриде, детальную в отдельной панели. После выбора сотрудника информация по сотруднику прописывается и панели ПерсоныД и в соответствующей строке грида панели Персоны.
3. Когда пользователь нажимает функциональную кнопку завершения работы с панелью, он не завершает работу в целом - текущая панель удаляется из зоны активности, её место занимает панель, что вызвала удаляемую.
...
Рейтинг: 0 / 0
Взаимодействие UserControl в рамках приложения
    #39818336
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев<Да, с тобой надо заканчивать. Полезной информации от тебя ноль.
Но на всякий случай,....
Но навсякий случай я за углом)))
Так обычно говорят технари-кодеры которые никогда не вырастут)... до постановщиков задач.
Будь справедливым, тебе же не только я про дизайн сказал).
Постановка задачи - Г. и дизайн - Г.
А исполнение задачи:
Выкладывай дальше свой код и жди ответов.
...
Рейтинг: 0 / 0
24 сообщений из 99, страница 4 из 4
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Взаимодействие UserControl в рамках приложения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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