powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Трансформация Grid без затрагивания компонент
10 сообщений из 10, страница 1 из 1
Трансформация Grid без затрагивания компонент
    #36456267
Cazzper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем.

Прошу помощи в простом но сложном для меня деле.

Существует на форме компонент Grid, с внедренными в него несколькими Shape.
Например:
автор
<Grid>
<Ellipse Fill="#FFCD6161" Stroke="Black" Margin="44,12,0,442" Width="28" />
<Line Fill="#FFCD6161" Stroke="Black" X1="131" Y1="37" X2="242" Y2="417" StrokeThickness="2" />
<TextBlock Margin="73,173,382,291" Text="Cool" TextWrapping="Wrap" Foreground="White"/>
</Grid>
Моя задача изменить размеры Grid в окне, посредством модификации его ScaleTransform. Конечно при трансформации все дочерние элементы тоже трансформируются. Но мне надо, чтобы дочерние элементы меняли свою позицию в соотв. с изменившимся размером Grid (ездили при изменении масштаба по форме), но сами при этом свой размер не меняли.

Как их исключить из трансформации родительского компонента?
...
Рейтинг: 0 / 0
Трансформация Grid без затрагивания компонент
    #36456272
Cazzper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приведу пример практический, чтобы понятно было о чем речь.
У меня есть изображение карты, на ней пиктограммы. Я увеличиваю карту, растут в размере
дороги и дома, сдвигаются и сами пиктограммы от изменения масштаба, но при этом эти пиктограммы расти не должны.
...
Рейтинг: 0 / 0
Трансформация Grid без затрагивания компонент
    #36456501
WPFdev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cazzper,
Можно пиктограммы уменьшить пропорционально увеличению масштаба
или увеличить при уменьшении.
...
Рейтинг: 0 / 0
Трансформация Grid без затрагивания компонент
    #36456642
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CazzperКак их исключить из трансформации родительского компонента?
У ScaleTransform есть свойство Reverse - На него забиндить ScaleTransform всех вложенных компонентов
...
Рейтинг: 0 / 0
Трансформация Grid без затрагивания компонент
    #36456643
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman S. GolubinУ ScaleTransform есть свойство Reverse
Упс. Transform.Inverse, конечно же.
...
Рейтинг: 0 / 0
Трансформация Grid без затрагивания компонент
    #36456970
Cazzper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за совет, но можно пример кода в эту тему, никак не могу понять как свойство Inverse использовать на практике. Как bind правильно прописать, чтобы трансформация работала, а scale нет.
...
Рейтинг: 0 / 0
Трансформация Grid без затрагивания компонент
    #36459171
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cazzper,

Насчет линии ничего не скажу, а для эллипса с текстом пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
	<Grid>
		<Grid.RowDefinitions>
			<RowDefinition Height="Auto" />
			<RowDefinition Height="*" />
		</Grid.RowDefinitions>
		<Slider x:Name="zoom" Minimum="0.5" Maximum="5" SmallChange="0.1"/>
		<Canvas x:Name="zoomed" Grid.Row="1" >
			<Canvas.RenderTransform>
				<ScaleTransform ScaleX="{Binding ElementName=zoom, Path=Value}" 
						ScaleY="{Binding ElementName=zoom, Path=Value}"/>
			</Canvas.RenderTransform>
				<Ellipse Canvas.Left="150" Canvas.Top="50"
					 Fill="#FFCD6161" Stroke="Black" Width="28" Height="28"
					 RenderTransform="{Binding ElementName=zoomed, Path=RenderTransform.Inverse}"/>
				<TextBlock Canvas.Left="50" Canvas.Top="150"
					   Text="Cool" TextWrapping="Wrap" Foreground="Black"
					   RenderTransform="{Binding ElementName=zoomed, Path=RenderTransform.Inverse}"/>
		</Canvas>
	</Grid>
</Window>
...
Рейтинг: 0 / 0
Трансформация Grid без затрагивания компонент
    #36459561
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Компоненты для карт используют канву, маркеры позиционируются отдельно без всякого маштабирования.
...
Рейтинг: 0 / 0
Трансформация Grid без затрагивания компонент
    #36459578
Silverlight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Компоненты для карт позволяют применять свой генератор тайлов. Берите готовый(см Bing maps SDK) и не мучайтесь
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Трансформация Grid без затрагивания компонент
    #38482181
ziziс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Заранее извиняюсь за некропостинг.
Никак не могу разобраться, интересует привязка в этом примере, как её в самом коде сделать.
У меня по нажатию кнопки создаётся на gride новый эллипс, как его привязать на RenderTransform.Inverse gridы.

Заранее благодарен!.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Трансформация Grid без затрагивания компонент
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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