Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 10.04.2016, 21:00   #11
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Что именно вы сделать хотите? Для обычного UI трансформы редко нужны, хватает правильного выбора контейнера, Margin, Padding, *Alignment, ...
Не то чтобы хочу, а просто думал, раз это всё-таки свойства трансформации, то кроме вращений должны быть и другие свойства.
Хотя, видимо не нужно заморачиваться. Пока не проштудирую базу не стоит внедряться в дебри. А то глаза разбегаются.
hoz вне форума   Ответить с цитированием
Старый 10.04.2016, 21:03   #12
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,809
Репутация: 3689

icq: 512-765
skype: alexp.frl
По умолчанию

Ну так они и есть
Цитата:
Код:
            System.Windows.Media.Transform
              System.Windows.Media.MatrixTransform
              System.Windows.Media.RotateTransform
              System.Windows.Media.ScaleTransform
              System.Windows.Media.SkewTransform
              System.Windows.Media.TransformGroup
              System.Windows.Media.TranslateTransform
Цитата:
Use the MatrixTransform class to create custom transformations that are not provided by the RotateTransform, ScaleTransform, SkewTransform, and TranslateTransform classes.
Какая трансформация нужна, такой и берите класс. Для сразу нескольких TransformGroup.

Последний раз редактировалось Alex11223; 10.04.2016 в 21:12.
Alex11223 вне форума   Ответить с цитированием
Старый 10.04.2016, 21:31   #13
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
Репутация: 10
По умолчанию

А всё-таки, от чего отталкивается XAML в плане помещения трансформированных объектов классами RenderTransform и LayoutTransform ?
Я заметил, что если повернуть кнопку классом LayoutTransform, она поворачивается как-то непонятно, центрирование не имеет логичного местонахождения, а если повернуть кнопку классом RenderTransform, то, как я заметил левый верний угол кнопки является тем углом, вокруг которого вращается эта самая кнопка.
hoz вне форума   Ответить с цитированием
Старый 10.04.2016, 21:35   #14
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,809
Репутация: 3689

icq: 512-765
skype: alexp.frl
По умолчанию

LayoutTransform это не класс, а имя свойства. Туда можно присвоить экземпляр любого из вышеперечисленных классов.
Цитата:
Код:
public Transform LayoutTransform { get; set; }
Alex11223 вне форума   Ответить с цитированием
Старый 10.04.2016, 22:51   #15
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
LayoutTransform это не класс, а имя свойства. Туда можно присвоить экземпляр любого из вышеперечисленных классов.
Всмысле туда можно присвоить?

Ведь при использовании свойства LayoutTransform почему-то другие элементы смещаются. У меня так кнопка нижняя съехала ещё ниже...
hoz вне форума   Ответить с цитированием
Старый 10.04.2016, 23:08   #16
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,809
Репутация: 3689

icq: 512-765
skype: alexp.frl
По умолчанию

Этот код
Код:
<Button RenderTransformOrigin="0.5,0.5" Background="Orange"> 
<Button.RenderTransform> 
    <RotateTransform Angle="45"/> 
</Button.RenderTransform> 
</Button>
эквивалентен этому
Код:
var button = new Button();
button.Background = new SolidColorBrush(Colors.Orange);
button.RenderTransformOrigin = new Point(0.5, 0.5);
            
var transform = new RotateTransform();
transform.Angle = 45;
button.RenderTransform = transform;

myGrid.Children.Add(button);
(в чем разница между RenderTransform и LayoutTransform я не помню, сами гуглите https://www.google.com/search?q=rend...ayouttransform, но они имеют один и тот же тип Transform и в оба можно засунуть все те же экземпляры классов-наследников Transofrm)
Alex11223 вне форума   Ответить с цитированием
Старый 12.04.2016, 21:24   #17
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
Репутация: 10
По умолчанию

А если нужно, как вариант, элемент изменить в размерах и после повернуть его как быть?
У меня, например, такое не работает:
Код:
<Button RenderTransformOrigin="0.0,0.0" HorizontalContentAlignment="Left" VerticalContentAlignment="Top" 
Height="40" Background="Red">
            <Button.RenderTransform>
                <SkewTransform AngleY="25" CenterY="178"/>
                <ScaleTransform ScaleX="0.5"/>
            </Button.RenderTransform>
            LeftToRight
        </Button>
Вижу ошибку:
Код:
Ошибка	1	Свойство "RenderTransform" может быть задано только один раз.	E:\Обучающее видео\Компьютерные\Программирование\videosharp.info. Теория ООП на практике\Project\TEST\Test1\MainWindow.xaml	8	13	Test1
Ошибка	2	Свойство "RenderTransform" установлено больше одного раза.	E:\Обучающее видео\Компьютерные\Программирование\videosharp.info. Теория ООП на практике\Project\TEST\Test1\MainWindow.xaml	10	17	Test1
hoz вне форума   Ответить с цитированием
Старый 12.04.2016, 21:28   #18
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,809
Репутация: 3689

icq: 512-765
skype: alexp.frl
По умолчанию

Я ж говорил, TransformGroup
Alex11223 вне форума   Ответить с цитированием
Старый 12.04.2016, 21:56   #19
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
Репутация: 10
По умолчанию

Так странно. Вот проект:
PHP код:
<Window x:Class="Test1.MainWindow"
        
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        
Title="MainWindow" Height="350" Width="525">
        <
StackPanel>
            <
Button RenderTransformOrigin="0.0,0.0" HorizontalContentAlignment="Left" VerticalContentAlignment="Top" 
Height="40" Background="Red">
            <
Button.RenderTransform>
                <
TransformGroup>
                    <
SkewTransform AngleY="25" CenterX="120" CenterY="300"/>
                    <
ScaleTransform ScaleX="0.5"/>
                </
TransformGroup>
            </
Button.RenderTransform>
            
LeftToRight
        
</Button>
            <
Button HorizontalContentAlignment="Left" VerticalContentAlignment="Top" 
Height="40" Background="Orange">RightToLeft</Button>
        </
StackPanel>
</
Window
Несмотря, на то что, CenterY="300" у красной кнопки, как видно не нулевой. Кнопка прижата к левой стороне, как и при CenterY="0".
Думал, что влияет свойство RenderTransformOrigin="0.0,0.0" родительского уровня, но, оказалось не в этом дело. Хотя, параметр CenterY="120" перемещает этот красный элемент Button. Но почему-то не по горизонтали, как сказано в МСДН, а по вертикали...
hoz вне форума   Ответить с цитированием
Старый 12.04.2016, 22:01   #20
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,809
Репутация: 3689

icq: 512-765
skype: alexp.frl
По умолчанию

https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx
Цитата:
In a composite transformation, the order of individual transformations is important. For example, if you first rotate, then scale, then translate, you get a different result than if you first translate, then rotate, then scale. One reason order is significant is that transformations like rotation and scaling are done with respect to the origin of the coordinate system. Scaling an object that is centered at the origin produces a different result than scaling an object that has been moved away from the origin. Similarly, rotating an object that is centered at the origin produces a different result than rotating an object that has been moved away from the origin.
Alex11223 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
App.xaml, MainPage.xaml, и тд. Chelovekpredel Общие вопросы .NET 0 19.12.2012 14:52
включить побочный Generic.xaml файл в основной App.xaml ImmortalAlexSan WPF, UWP, WinRT, XAML 1 21.09.2012 19:58
Требуется написать программу, совмещение рентгеновских изображений через преобразование (метод) Фурье. Gumus Помощь студентам 0 28.05.2012 16:12
xaml Cpluser WPF, UWP, WinRT, XAML 2 22.01.2010 15:58
Проблема преобразование jpg в bmp через dll inndim Общие вопросы Delphi 5 24.06.2008 18:24


10:55.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru