[WPF] пиксельная точность в OnRender
От: barn_czn  
Дата: 21.01.20 17:17
Оценка:
Пытаюсь нарисовать по углам симметрично отраженный/смещенный контент :
Периодически получаю от WPF какую нить хрень в пиксельном режиме. Ставлю для этого и

RenderOptions.SetBitmapScalingMode(this, BitmapScalingMode.NearestNeighbor);
RenderOptions.SetEdgeMode(this, EdgeMode.Aliased);

и SnapsToDevicePixels = true

Бесполезно.. где то что то на "оттапырится".
Вот и здесь, банально паралельный перенос в OnRender начинает искажать размеры. Да чтож такое то..


protected override void OnRender(DrawingContext dc)
        {
            

            DrawCorner(dc);

            dc.PushTransform(new TranslateTransform(RenderSize.Width, 0d));
            dc.PushTransform(new ScaleTransform(-1d, 1d));
            DrawCorner(dc);
            dc.Pop();
            dc.Pop();

            dc.PushTransform(new TranslateTransform(RenderSize.Width, RenderSize.Height));
            dc.PushTransform(new ScaleTransform(-1d, -1d));
            DrawCorner(dc);
            dc.Pop();
            dc.Pop();


            dc.PushTransform(new TranslateTransform(0d, RenderSize.Height));
            dc.PushTransform(new ScaleTransform(1d, -1d));
            DrawCorner(dc);
            dc.Pop();
            dc.Pop();

            base.OnRender(dc);
        }


DrawCorner — рисует контент в TopLeft который дальше по углам симметрично отражается и смещается

Что ни так?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.