Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

Ну так они и есть
Цитата:
Код:
            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.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

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

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

LayoutTransform это не класс, а имя свойства. Туда можно присвоить экземпляр любого из вышеперечисленных классов.
Цитата:
Код:
public Transform LayoutTransform { get; set; }
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.04.2016, 21:51   #15
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

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

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

Этот код
Код:
<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)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.04.2016, 20:24   #17
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

А если нужно, как вариант, элемент изменить в размерах и после повернуть его как быть?
У меня, например, такое не работает:
Код:
<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, 20:28   #18
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Я ж говорил, TransformGroup
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.04.2016, 20:56   #19
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Так странно. Вот проект:
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, 21:01   #20
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

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.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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 14:58
Проблема преобразование jpg в bmp через dll inndim Общие вопросы Delphi 5 24.06.2008 18:24