Заморочка интересная с WPF binding
почему для юзэрьконтрола все должно быть иначе?
Предположим, у меня на одной странице 3 контрола, а на другой еще где-то еще такой же.
Или у меня таб контрол, на все страницы один VW? Хотя опять таки зависит от ситуации.
зы: вам тоже всего хорошего в Новом году ![]()
![]()
![]()
заморочка новая, но открывать новую тему, думаю, не обязательно (или было бы удобнее?)
вопрос. как в WPF изобразить массу кружочков, чтобы было "легковесно" и каждый можно было бы красить своим цветом и при первопоказе, и потом менять?
довольно быстро прорисовывается EllipseGeometry, но цвет у всех в группе один.
могу, конечно, на канве по битам распрашивать, но это - некошер, и не уверен, что будет быстрее.
в идеале - ссылка на примегчик.
спасибо, но гуглить сами могём : )
никаких "новых библигтек" или "технологий" изучать не предполагается.
просто ищу хороший пример, как можно массу EllipseGeometry (заявлено, как очень лайтуэйт) нарисовать так, чтобы каждая из них получала свой цвет. подозреваю, что их для этого нужно помещать в отдельные "контейнеры", цвета будут определяться для контейнеров. но меня бы это устроило.
скорее всего сделаю все с shape-объектами, и пусть себе перерисовывает сколько хочет. или буду сам пикселы вырисовывать.
что их для этого нужно помещать в отдельные "контейнеры"
мне так не кажется
Но можно глянуть.
я уже упомянул: никаких библиотек, новых передовых технологий и пр. только элементарные частицы : )
вот создайте новый впф-проект и поместите в грид, созданный по умолчанию, это. затем попробуйте поиграться с Center="50,5", и попытайтесь мне пояснить, относительно чего эти координаты. и почему этот кружочек не по координате 50 (х), а вроде как 0?
<Border BorderBrush="Gray" BorderThickness="1" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10" Background="Transparent">
<Image Stretch="None" HorizontalAlignment="Left">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing>
<GeometryDrawing.Geometry>
<GeometryGroup>
<EllipseGeometry Center="50,5" RadiusX="5" RadiusY="5" />
<EllipseGeometry Center="50,15" RadiusX="5" RadiusY="5" />
<EllipseGeometry Center="150,25" RadiusX="5" RadiusY="5" />
</GeometryGroup>
</GeometryDrawing.Geometry>
<GeometryDrawing.Brush>
<SolidColorBrush Color="Blue" />
</GeometryDrawing.Brush>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
</Border>
никаких библиотек
не нужно их использовать, можно глянуть как сделано. ![]()
вот создайте новый впф-проект
Да уж придется...
Хотя можно было и приаттачить.
Хочется значить много кружочков разных цветов...
не нужно их использовать, можно глянуть как сделано
слишком сложно для моих целей. и будет ли перфоманс лучше, чем у shapes, неизвестно.
ничего особо сложного не нашёл
Скорость не мерял, но работает
<ItemsControl ItemsSource="{Binding Items}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Background="WhiteSmoke" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding X}"/>
<Setter Property="Canvas.Top" Value="{Binding Y}"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Path Fill="{Binding Color}">
<Path.Data>
<EllipseGeometry RadiusX="{Binding Radius}" RadiusY="{Binding Radius}"/>
</Path.Data>
</Path>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
exe из архива не удалял.
А это какая то тупиковая форма, пока не имею понятия как туда накидать больше кружочков в MVVM ![]()
и попытайтесь мне пояснить, относительно чего эти координаты
Там масштабирование относительно Image, с этой добавкой будет получше, но получить абсолютные координаты будет проблематично
<Image Stretch="None" HorizontalAlignment="Left" Width="800" Height="600">
Рекомендуют то по другому ![]()
https://docs.microsoft.com/en-us/dotnet/desktop/wpf/graphi...
Алекс, спасибо за поддерку!
в конце-концов выбросил все опробованное нафер и сделал на WritableBitmap. работает МИГОМ!
Всё хорошо, что хорошо работает ![]()
Правда что за скорость нужна такая, так и не понял. Ну да ладно...
Правда что за скорость нужна такая, так и не понял. Ну да ладно...
на экране - несколько тысяч кружочков, которые 2-3 раза в секунду (хорошо, раз в секунду) меняют свой цвет. пока цветов - три, диаметр кружочков - одинаков, двигать их пока не нужно, не знаю, понадобится ли.
попробуйте в вашей проге нагенерить хотя бы тысячу, установить таймер и менять цвет каждой ежесекундно. уверен, экран будет замерзать на несколько секунд. а если будет несколько тысяч? несколько дейстков тысяч? а если несколько раз в секунду?
хотите сказать, что показывает 10 "кадров" в секунду? я вижу иногда вообще какие-то непонятные (вернее, понятные : ) подвисания.
у меня (начальный этап) 10 000 кружочков, 0.5. попробовал интервал 0.1 сек - тоже очень флот все бежит, но мне это слишком быстро, еще не знаю, или секунду или половину.
зы а чем вы это кыдо сняли?
хотите сказать, что показывает 10 "кадров" в секунду?
Угу ![]()
а чем вы это кыдо сняли?
Давно уже прикупил https://www.techsmith.de/
Очень всем рекомендую. Доки делать просто удовольствие.
На 10 000 похуже будет, но еще юзабельно
редуцируйте на 100 штук, тогда вы увидите, что такое 0.1 флот. "юзабильно" - неподходящее слово для того, что в фильме.
Давно уже прикупил https://www.techsmith.de/Очень всем рекомендую. Доки делать просто удовольствие.
какой именно продукт, чтоб я не терял время?
