powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как оставить comboBox в открытом состоянии?
6 сообщений из 6, страница 1 из 1
Как оставить comboBox в открытом состоянии?
    #38865627
erman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Есть comboBox заполненый значениями. Возле него - кнопка с текстом "Раскрыть" или "Свернуть" в зависимости от состояния comboBox-a. Создал обработчик на эту кнопку, код которого разворачивает-сворачивает список и меняет текст кнопки. Проблема заключается в том, что при выходе из обработчика список в любом случае остаётся свёрнутым.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
private void btnDisclose_Click(object sender, RoutedEventArgs e)
        {
            if (cbxNormalList.IsDropDownOpen == false)
            {
                cbxNormalList.IsDropDownOpen = true;
                tblBtnDisclose.Content = "Свернуть список";
                return;
            }
            if (cbxNormalList.IsDropDownOpen == true)
            {
                cbxNormalList.IsDropDownOpen = false;
                tblBtnDisclose.Content = "Развернуть список";
                return;
            }
}


Ожидал, что при изменении этого свойства список останется открытым, но... Почему такое поведение?
...
Рейтинг: 0 / 0
Как оставить comboBox в открытом состоянии?
    #38865632
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите лучше его template. Внутри него Popup, который действует именно так. Если это не нужно, переопределите template и поставьте ему свойство StaysOpen в true.
...
Рейтинг: 0 / 0
Как оставить comboBox в открытом состоянии?
    #38865647
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скорее всего проблема в том, что вы нажимаете кнопку, а так как в ComboBox Popup панель со свойство StayOpen = false, то в момент открытия она захватывает мышку и ожидает нажатия кнопки, если кнопка нажата за границами Popup окна, то она его сворачивает.
Получается, что вы нажали кнопку, при этом всплывающее окно сразу закрывается.
...
Рейтинг: 0 / 0
Как оставить comboBox в открытом состоянии?
    #38865705
erman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не вижу такого свойства...
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<Window x:Class="Menu_Lists_Trees.ComboBoxWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="ComboBoxWindow" Height="600" Width="1200">
    <Grid>
        <ComboBox x:Name="cbxNormalList" HorizontalAlignment="Left" VerticalAlignment="Top" Width="221" Margin="5,217,0,0" />
        <Button x:Name="tblBtnDisclose" HorizontalAlignment="Left" VerticalAlignment="Top" Width="163" Margin="10,12,0,0" Height="34" Click="btnDisclose_Click">
            <TextBlock TextWrapping="Wrap" Height="30" FontSize="11" FontWeight="Bold" Text="Раскрыть список">                
            </TextBlock>            
        </Button>
   </Grid>
</Window>
...
Рейтинг: 0 / 0
Как оставить comboBox в открытом состоянии?
    #38865715
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имею в виду свойство Template, наследуемое от класса Control. Примеры есть здесь . Там через стили, но можно задать свойство Template и напрямую. Тип данных ControlTemplate.
...
Рейтинг: 0 / 0
Как оставить comboBox в открытом состоянии?
    #38865721
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
erman,

StayOpen это свойства контрола Popup, этот контрол находится в шаблоне ComboBox. Вам нужно переопределить шаблон ComboBox'а
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как оставить comboBox в открытом состоянии?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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