powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Предугадать размер контрола до рендеринга
59 сообщений из 59, показаны все 3 страниц
Предугадать размер контрола до рендеринга
    #39617938
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, посоветуйте пожалуйста, как лучше поступить.
Есть ItemsControl, в котором при ситуации когда нельзя отобразить все элементы на экране, нужно формировать новую "порцию" элементов и показывать их по очереди с таймером, так чтобы они все влезли на экран. Высота каждого элемента ItemsControl может быть разной.
Что сделал: обернул itemscontrol в ScrollViewer и сравниваю ViewportHeight от ScrollViewer и ActualHeight от ItemsControl, когда разница между ними появляется, соответственно элемент не влез и будет показан не полностью без прокрутки ScrollViewer.
Вопрос: при "поштучном" добавлении элементов в ViewModel для ItemsControl.itemsource, можно ли узнать, что добавление этого элемента приведет к включению скролла и он не влезет в Viewport. Гугл говорит, что можно это узнать только по факту после рендеринга, то есть нужно сначала добавить, прорисовать, получить размер, и если не хватает высоты, то удаляем элемент. Хотелось бы избежать такой стратегии добавлении. Спасибо
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39617945
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subнужно формировать новую "порцию" элементов и показывать их по очереди с таймером, так чтобы они все влезли на экран.если не влезает, в верстке сдвиг и скроллинг по умолчанию.
Т.е. если я повернул экран на 90 град будут папап окна мелькать?
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39617946
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subнужно формировать новую "порцию" элементов и показывать их по очереди с таймером, так чтобы они все влезли на экран.если не влезает, в верстке сдвиг и скроллинг по умолчанию.
Т.е. если я повернул экран на 90 град будут папап окна мелькать?
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39617963
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
папап меню никаких нет, задача показать ровно столько элементов, которые влезут без скролла, т.к. у пользователя не будет возможности скроллировать, а просмотреть все элементы нужно То есть, если например при обычной ориентации влезает 5 элементов, разворачиваем на 90 экран делается выше и соответственно влезет больше элементов.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39617976
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,
И экран размер может быть любой?
Иначе просто верстка для определенного экрана с поворотом туда сюда.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39617977
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
экран фиксированный. В принципе от размера экрана не должно зависеть- есть же ActualHeight и ViewportHeight, нужно их просто мониторить.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39617979
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subнужно их просто мониторить.нет.
Если фиксированный, то просто выбрать правильную верстку. Чтобы контекст перетекал из горизонтали в вертикаль.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39617985
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
вертикали тоже не хватит.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39617986
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Вы про что-то вроде wrap панели.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39617987
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subPetro123,
вертикали тоже не хватит.тогда в Layouts контроле делаешь все остальные заранее мультимедиа прыгающие.
Какие не влазят покажет IDE прямо счас.
Вычислять не надо.
Надо дизайн формы делать.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39617989
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subЕсли Вы про что-то вроде wrap панели.в андроид студии есть кнопка Повернуть экран. И все видно сразу.
Тут не подскажу. Жди профи.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39617998
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
что-то я все равно не могу понять, как я их заранее разобью все элементы, не знаю сколько они будут места занимать.
То есть у меня например максимум на всем экране (горизонталь+ вертикаль- все заполнено) в ItemControl'e поместится например 10 элементов. Если их размер будет другой поместится максимум 5. А нужно показать 100 и без скроллинга- то есть нужно или делать меньше все элементы или автопрокрутку - но это то еще удовольствие.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618008
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subне знаю сколько они будут места занимать.
Открой xaml и слева внизу поставь 100%
Виден реальный размер.
Включи свойства Контрол-layout там цифры.
?
Т.е. ты заранее видишь что не влазит.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618011
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subЕсли их размер будет другойу каждого контрола есть свой layout.
Поставь там вписать.
И дай скрины что за 100 элементов?
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618013
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subА нужно показать 100 и без скроллинга-а миллион без скроллинга? Предел есть?
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618016
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,
Даю решение по дизайну.
Ставим полосу из точек 3х3пикселя на 100 контролов.
При MouseMove над точкой показываем сам контрол.
Всё.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618026
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subЕсть ItemsControl, в котором при ситуации когда нельзя отобразить все элементы на экране, нужно формировать новую "порцию" элементов и показывать их по очереди с таймером, так чтобы они все влезли на экран. Высота каждого элемента ItemsControl может быть разной.Я не очень понял задачу. Допустим есть 15 элементов и есть некий размер области, в которой поместится 5, затем 3, затем 7 элементов. Ты хочешь сделать, чтобы каждую секунду эти группы элементов менялись на следующую, так? Тогда не очень понимаю, причем тут ItemsControl, тут на первый взгляд больше задача для кастомной панели, или же я неверно понимаю, что требуется.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618028
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

В Window один элемент
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
 <ItemsControl   Style="{StaticResource ItemsControlStyleMainViewFirst}"/>

сами стили
 <Style x:Key="ItemsControlStyleMainViewFirst"
           BasedOn="{StaticResource BaseItemsControlStyle}"
           TargetType="{x:Type ItemsControl}" >
        <Style.Resources>
            <DataTemplate x:Key="InfoTemplate" DataType="{x:Type m:InfoItem}">
                <DataTemplate.Resources>
                    <Style TargetType="{x:Type TextBlock}">
                        <Setter Property="VerticalAlignment" Value="Center" />
                        <Setter Property="HorizontalAlignment" Value="Center" />
                        <Setter Property="Margin" Value="3 0 3 0"/>
                    </Style>
                </DataTemplate.Resources>
                <Border BorderBrush="Azure" BorderThickness="0.5"  Margin="0 2 0 2" CornerRadius="0">
                    <StackPanel Orientation="Horizontal"  >


                        <Grid Margin="10 0 10 0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition  SharedSizeGroup="col2" />
                            </Grid.ColumnDefinitions>
                            <TextBlock  Text="{Binding person.nWindow,IsAsync=True}" FontSize="80"/>
                        </Grid>

                        <Grid >
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition SharedSizeGroup="col3" />
                            </Grid.ColumnDefinitions>
                            <TextBlock  Text="{Binding person.F,IsAsync=True}"   Foreground="DarkSalmon"  />
                        </Grid>

                        <Grid   VerticalAlignment="Center">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition SharedSizeGroup="col4" />
                            </Grid.ColumnDefinitions>
                            <ItemsControl  Style="{StaticResource fltItemscontrolStyle}"/>
                        </Grid>
                    </StackPanel>

                </Border>
            </DataTemplate>
        </Style.Resources>

        <Setter Property="Grid.IsSharedSizeScope" Value="True"/>
        <Setter Property="ItemsSource" Value="{Binding infoListFirst,IsAsync=True}"/>
        <Setter Property="ItemTemplate" Value="{StaticResource InfoTemplate}"/>
   
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ItemsControl}">
                    <ItemsPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

 <Style  x:Key="fltItemscontrolStyle"
        BasedOn="{StaticResource BaseItemsControlStyle}"
        TargetType="{x:Type ItemsControl}">
        <Style.Resources>
            
            <DataTemplate x:Key="fltTemplate" DataType="{x:Type m:InfoFlt}">
                <DataTemplate.Resources>
                    <Style TargetType="{x:Type TextBlock}">
                        <Setter Property="VerticalAlignment" Value="Center" />
                        <Setter Property="HorizontalAlignment" Value="Center" />
                        <Setter Property="Margin" Value="3 0 3 0"/>
                        <Setter Property="HorizontalAlignment" Value="Center" />
                        <Setter Property="VerticalAlignment" Value="Center"/>
                    </Style>
                </DataTemplate.Resources>


                <StackPanel Orientation="Horizontal"  Margin="0 2 2 0">
                    <Grid Margin="10 0 0 0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition  SharedSizeGroup="col1Detail" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="{Binding nf,IsAsync=True}"  />
                    </Grid>

                    <Grid Margin="10 0 0 0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition  SharedSizeGroup="col2Detail" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="{Binding cac,IsAsync=True}" FontStyle="Italic" Foreground="DarkSalmon" />
                    </Grid>

                    <Grid Margin="10 0 0 0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition  SharedSizeGroup="col3Detail" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="{Binding ddep,IsAsync=True,StringFormat=HH:mm}" />
                    </Grid>

                    <Grid Margin="5 0 0 0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition  SharedSizeGroup="col4Detail" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="{Binding workShopLeave,IsAsync=True,StringFormat=HH:mm}" />
                    </Grid>

                    <Grid >
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition  SharedSizeGroup="col5Detail" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="{Binding IsFridgeReady,IsAsync=True}" />
                    </Grid>

                </StackPanel>
            </DataTemplate>
        </Style.Resources>
        
        <Setter Property="Grid.IsSharedSizeScope" Value="False"/>
        <Setter Property="ItemTemplate" Value="{StaticResource fltTemplate}"/>
        <Setter Property="ItemsSource" Value="{Binding person.list,IsAsync=True}"/>

    </Style>



ввиду того, что

Код: xml
1.
2.
3.
4.
5.
6.
       <Grid   VerticalAlignment="Center">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition SharedSizeGroup="col4" />
                            </Grid.ColumnDefinitions>
                            <ItemsControl  Style="{StaticResource fltItemscontrolStyle}"/>
                        </Grid>



количество элементов в ItemsControl может быть разное, родительский InfoTemplate тоже растягивается по высоте, поэтому я не могу в статике замерять его высоту. В вышеприведенном <ItemsControl Style="{StaticResource fltItemscontrolStyle}"/> может быть как 1 элемент, так и >1.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618038
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,
Сначала задачу понять надо.
1. Что за элемент с непредсказуемым контентом который надо вписать?
2. Используй вписать вместо заполнить всё доступное.
3. Моё ТЗ с превью контролов маленькими подходит?
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618073
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Provb_subЕсть ItemsControl, в котором при ситуации когда нельзя отобразить все элементы на экране, нужно формировать новую "порцию" элементов и показывать их по очереди с таймером, так чтобы они все влезли на экран. Высота каждого элемента ItemsControl может быть разной.Я не очень понял задачу. Допустим есть 15 элементов и есть некий размер области, в которой поместится 5, затем 3, затем 7 элементов. Ты хочешь сделать, чтобы каждую секунду эти группы элементов менялись на следующую, так? Тогда не очень понимаю, причем тут ItemsControl, тут на первый взгляд больше задача для кастомной панели, или же я неверно понимаю, что требуется.vb_subможно это узнать только по факту после рендеринга, то есть нужно сначала добавить, прорисовать, получить размер, и если не хватает высоты, то удаляем элемент.Как раз-таки в варианте с панелью нам не нужно ничего прорисовывать, чтобы узнать размер элемента, для этого существует "измерение"
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618104
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProКак раз-таки в варианте с панелью нам не нужно ничего прорисовывать, чтобы узнать размер элемента, для этого существует "измерение"И панель как раз-таки можно встроить ItemsControl.ItemsPanelTemplate, чтобы получить доступ к прибайнденным элементам
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618110
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
1)немного акварели
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618127
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
2) если вписывать, то прийдется как я понимаю зумить размеры в меньшую сторону.
3) пока еще не успел проработать
На картинке в экран помещается 5 элементов, а показать например нужно 100 (это все условно для примера- не в количестве дело), причем высота каждого разная - в зависимости от количества элементов внутреннего ItemsControl- как видно из картинки может быть 1,2,3,4,5- соответственно высота каждого элемента- разная.
Я хочу проработать следующую ситуацию-во внешний itemsScontrol (ItemsControlStyleMainViewFirst) загружено 4 элемента, я хочу проверить - влезет ли 5-й элемент в этот же экран, если не влезет то разбиваю всю коллекцию элементов на 2 части и показываю их по очереди с таймером.
На картинке в данном случае 5-й элемент(Ник**ин) поместился на экран, но если бы в 5-м элементе во внутреннем itemsScontrol (fltItemscontrolStyle) было бы не 4 элемента, а 5, то весь 5-й элемент бы не поместился и соответственно его нужно переносить в следующую порцию. Вот я хочу детектировать во ViewModel это событие, когда следующий элемент не поместится на экран.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618133
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,
Остальные 95 по таймеру хочешь мельтешить на экране?
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618134
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,
Поставь буквы алфавита и мышкой показывать.
У тебя юз кейс фотогалерии из 100 фотографий)
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618136
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
остальные 95 нужно также разбивать на такое количество элементов, которое влезет в окно без скролла и соответственно показывать каждую порцию.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618142
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subего нужно переносить в следующую порцию.
Вариант номер 2 - не надо порции.
В цикле включать показ по одному. После рендера если видимый, то следующий. Если нет, то выкл предыдущий.
Шаблон стека.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618147
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормальная задача для панели - не надо это на viewmodel перекладывать.
Работает аналогично wrappanel, только из получившейся разбивки показывается в моменте только одна порция.
Кода на полэкрана.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618275
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
каким образом внутри панели определять влезет ли порция элементов без скролла?
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618287
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subShocker.Pro,
каким образом внутри панели определять влезет ли порция элементов без скролла?ты себе и компу усложнил жизнь своей порцией.
Не нужна она. И вычислять нечего.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618292
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro верно подметил. Кода на пол страницы.
Всем вкл. Невидимость и потом в потоке по одному включать.
Мож анимацию забабахать как титры в звездных войнах))
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618334
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Shocker.Pro верно подметил. Кода на пол страницы.
Всем вкл. Невидимость и потом в потоке по одному включать.Слушай, вот ты не знаешь WPF от слова совсем. Зачем ты лезешь в каждый топик с флудом?


vb_subкаким образом внутри панели определять влезет ли порция элементов без скролла?Так же, как это делает WrapPanel, когда определяет, сколько элементов влезет на одну строку - с помощью измерения.
Вот просвещайся - перевод из учебника Мак-Дональда.
http://professorweb.ru/my/WPF/Template/level18/18_12.php
Правда сам сайт майнит биткоины, пока открыта страница - имей ввиду.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618351
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProСлушай, вот ты не знаешь WPF от слова совсем.я его изучаю.
Ты и прошлую тему с банальным join почему то не закрыл.
Я прав что ли был?
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618357
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProWrapPanelи почему решил что это единственный способ решения задачи?
Разве второй способ не работает?
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618363
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123я его изучаю.возможно, но люди ждут решения своих задач, а не пустопорожнего трепа,
не знаешь решения - помолчи, сойдешь за умногоPetro123Ты и прошлую тему с банальным join почему то не закрыл.вообще тема была закрыта и вопрос в достаточной степени исчерпан, а спорить с тобой, только ради того, чтобы оставить за собой последнее слово, я не буду, даже не надейся.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618369
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Разве второй способ не работает?вот этот?Petro123ты себе и компу усложнил жизнь своей порцией.
Не нужна она. И вычислять нечего.конечно работает.
Если ты изучаешь - возьми и сделай рабочий пример, как считаешь нужным. Тупо на примере прямоугольников со случайным размером. И будет тебе респект и уважуха, а пока ты - балабол.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618377
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proвообще тема была закрыта и вопрос в достаточной степени исчерпан, а споритьне надо спорить. Итог то какой? От тебя итог?

Shocker.Proвот этот?
Показывать не пачками, а по одному контролу.
Тогда есть события типа Влезло и не Влезло.
...
Если лень можешь не отвечать.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618399
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

ты проходил тест на профессоре вебе? Просто я на других компьютерах открываю этот сайт- майнера нет, а у меня есть, причем только в хроме, в эксплорере нет.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618413
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subты проходил тест на профессоре вебе? Просто я на других компьютерах открываю этот сайт- майнера нет, а у меня есть, причем только в хроме, в эксплорере нет.нет, но где-то на хабре писали, что чел охренел. От себя добавлю, что он выкладывает тексты статей без ссылки на авторство, за что тоже руки бы надо отрывать.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618465
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subили автопрокрутку - но это то еще удовольствие.
Т.е. если коллекцию поместить в ScrollViewer,
- скрыть полосы прокрутки
- CanContentScroll врубить чтобы скролл поэлементно
- в таймере scroll.LineDown();
То это "то ещё удовольствие"?
Моя твоя не понимает))
Прикольная задача.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618471
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
в таком случае нужно делать "бесконечный" itemscontrol- когда прокрутка дойдет до конца, нужно из самого начала подставлять элементы в конец+ отслеживать viewPort и так далее.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618486
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,
Зачем бесконечный?
Это по бизнесу надо? Не пойму.
В принципе, полосы прокрутки не видны.
Одним прыжком можно в начало.
Реверс коллекции можно мгновенно.
Не понял тебя.
Контрол у тебя Фамилия со всей хренотенью.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618487
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,
В scrollViewer 100 айтемсов.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618501
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subв таком случае нужно делать "бесконечный" itemscontrol- когда прокрутка дойдет до конца, нужно из самого начала подставлять элементы в конец+ отслеживать viewPort и так далее.У тебя будут заметные тормоза из-за отсутствия виртуализации в ItemsControl
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618507
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
поэтому я не стал рассматривать этот вариант как основной- в нем еще больше костылей нужно, чем собственную панель написать.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618521
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proзаметные тормозавот не думал что так печально с сотней контролов
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618597
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProСлушай, вот ты не знаешь WPF от слова совсем. Зачем ты лезешь в каждый топик с флудом?
Эффект Даннинга-Крюгера во всей красе. Проще не обращать внимания. Могу поделиться скриптом блэклиста этого форума для greasemonkey.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618600
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,
Эффект нетолерантности, когда те кто сам не общается требует этого же от других. Да еще на форуме. Что нонсенс.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618602
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

нетолерантности к чему, к флуду?
Уже который человек тебе об этом пишет, можно было проявить понимание
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618604
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
На тебя в соседнем топике фильтр поставили).
Неужели анализ не сделал?
Я тебя вообще не читаю.
Админы, закройте ветку за флуд не по теме топика.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618605
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Желающим увидеть код, сегодня попробую.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618618
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Shocker.Proзаметные тормозавот не думал что так печально с сотней контролов

если элементы будут визуально сложнее, то тормоза возможны,хотя не факт.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618622
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,
Согласен.
Только по факту у тебя они простые.
И я не думаю что 100 это много.
Т.е. _существенных тормозов_ на
LineDown по таймеру! Брат! Не будет.
Это же не колесиком крутить.
...
Но тут требую прописку кодом. ОК.
Попробую.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618623
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subхотя не факт.а тебе вообще проверить 5 мин.
Я то первый раз писать wpf буду))
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618771
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут наверно шутили, когда говорили что 100 ItemsControl будут тормозить ощутимо.
Я этого совсем не заметил по живенькому скроллу мышкой колёсиком.
Т.е. можно тормоза в любом коде сделать. Это OFFTOP.
Но данный метод (скроллинг), для ТС, имеет право на озвучивание в топике.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<Grid>
		<ScrollViewer>
						<ItemsControl Name="icTodoList">
						<ItemsControl.ItemTemplate>
								<DataTemplate>
										<Grid Margin="0,0,0,5">
												<Grid.ColumnDefinitions>
														<ColumnDefinition Width="*"/>
														<ColumnDefinition Width="100"/>
												</Grid.ColumnDefinitions>
												<TextBlock Text="{Binding Title}" />
												<ProgressBar Grid.Column="1" Minimum="0" Maximum="100" Value="{Binding Completion}" />
										</Grid>
								</DataTemplate>
						</ItemsControl.ItemTemplate>
				</ItemsControl>
		</ScrollViewer>
</Grid>

public partial class MainWindow : Window
{
		public MainWindow()
		{
				InitializeComponent();
				List<TodoItem> items = new List<TodoItem>();
				for (int i = 0; i < 100; i++)
						items.Add(new WpfApplication1.TodoItem() { Title = "ФИО"+i, Completion = i });

				icTodoList.ItemsSource = items;
		}
}

public class TodoItem
{
		public string Title { get; set; }
		public int Completion { get; set; }
}
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618837
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

проблемы начинаются примерно с 80000-100000 вложенных элементов в ItemsControl находящихся в области видимости.
На примере DataGrid'а, где строки по сути тоже ItemsControl'ы, если сделать сетку 100 на 100 проблемы начнутся, но в DataGrid есть вертикальная\горизонтальная виртуализация. Как правило при выборе ListView и DataGrid я оставляю свой выбор на 2ом. Полностью переработать в шаблон элемента можно сделать так, что и не скажешь, что это DataGrid =)
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618847
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,
Спс. За конкретику. Цифры запомнил.
Я знаю что ты профи).
От виртуализации в формс я ушел в обычную пагинацию.
Как то проще было. Кода меньше.
Ах да! Телерик таблица с пагинацией в ГУИ была. Запрос только поправил.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618858
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesКак правило при выборе ListView и DataGrid я оставляю свой выбор на 2ом.почему? именно из-за горизонтальной виртуализации? Вертикальная она же и в ListView есть.
...
Рейтинг: 0 / 0
Предугадать размер контрола до рендеринга
    #39618877
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

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


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