Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Получить DesignWidth у UserControl в рантайм. / 8 сообщений из 8, страница 1 из 1
07.09.2010, 15:19
    #36834209
Andrew Nagorny
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить DesignWidth у UserControl в рантайм.
Кто знает? Как это сделать?
...
Рейтинг: 0 / 0
07.09.2010, 21:53
    #36834829
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить DesignWidth у UserControl в рантайм.
Andrew Nagorny,

если речь идет о Silverlight (сам недавно нуждался в решении подобного вопроса), то тебе необходимы свойства ActualHeight & ActualWidth, но по какой-то неизвестной причине контролы не имеют как ни странно этих самых Актуальных значений и всегда равны нулю.

Выход есть, получить их через Диспетчер асинхронно:
Код: plaintext
1.
2.
3.
Dispatcher.BeginInvoke(() =>
{
MessageBox.Show(string.Format("Actual size of control: {0}x{1}", [элемент_управления].ActualWidth, [элемент_управления].ActualHeight));
});
...
Рейтинг: 0 / 0
08.09.2010, 09:33
    #36835135
Andrew Nagorny
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить DesignWidth у UserControl в рантайм.
Ну я юзаю WPF.

В том то и дело что Actual размеры не походят.

У меня есть свой UserControl, в дизайнере естественно автоматом проставляются Design размеры, никаких других размеров я не ставлю.

Так вот я создаю окно, в которое запихиваю кодом этот UserControl. Затем мне нужно проставить размеры окна, подобранные под вложенный UserControl (что то типа autosize окна). Лучше всего для этого брать те размеры, которые были определены для при рисовании контрола в дизайнере.

А Actual размеры рассчитываются, исходя из текущей компоновки окна. Что мне не подходит.

В инете искал долго и упорно по поводу того чтобы достать Design размеры. Ничего не нашел.((((
...
Рейтинг: 0 / 0
08.09.2010, 10:21
    #36835224
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить DesignWidth у UserControl в рантайм.
Andrew Nagorny,

а почему бы в дизайнере(и затем в коде) не использовать(задавать) Width вместо DesignWidth (привести декларируемое в соответствие с желаемым)?
...
Рейтинг: 0 / 0
08.09.2010, 10:32
    #36835253
Andrew Nagorny
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить DesignWidth у UserControl в рантайм.
Сейчас я так и делаю, но это неудобно, в том смысле, что приходится помнить, что нужно не забыть установить явные размеры при разработке нового контрола.

Вот и захотел узнать, есть ли возможность узнать Design размеры, чтобы избавиться от этой необходимости.
...
Рейтинг: 0 / 0
08.09.2010, 10:35
    #36835263
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить DesignWidth у UserControl в рантайм.
Andrew Nagorny,

snoop найди программку. посмотри через нее свою программу. и посмотри где лежат твои размеры. потом через binding достань их.
...
Рейтинг: 0 / 0
08.09.2010, 11:16
    #36835389
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить DesignWidth у UserControl в рантайм.
Andrew NagornyСейчас я так и делаю, но это неудобно, в том смысле, что приходится помнить, что нужно не забыть установить явные размеры при разработке нового контрола.
так может "правильней" подправить шаблон контрола в студии (вместо DesignWidth - Width)?
...
Рейтинг: 0 / 0
09.09.2010, 10:12
    #36837380
Andrew Nagorny
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить DesignWidth у UserControl в рантайм.
to AlexeiK

snoop не видит этих свойств.

to LR

хм... я попробую. может и подойдет, смотреть надо как будет.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Получить DesignWidth у UserControl в рантайм. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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