Получить фрагмент DrawingImage

По Avalonia у меня очень маленький опыт.

Из того что сталкивался - очень сырая, многое что не работает как ожидается. Приходилось делать какие-то дикие AP-свойства чтобы добиться нужного результата, такого которого в WPF можно получить "парой строк".

Вполне возможно, что ваше решение близко к тому, что нужно для Avalonia.

Но я бы его реализовал несколько по иному.

Так как вам нужна обрезка прямоугольником, то можно сделать AP свойство принимающее Rect или Thinness. В его логике будет как обрезка с использование Clip, так и смещение на нужную позицию.

Добавлено через 6 минут

Можно ещё обрезать за счёт смешения в родительском контейнере:

XMLВыделить код

1
2
3
4
5
6
7
8
9

    <Grid>
        <Grid ClipToBounds="True">
            <Image Source="{StaticResource ISO_12233_reschartDrawingImage}"  Stretch="None" 
                   Margin="-56,-56 0,0"
                   Width="953" Height="512"
                   HorizontalAlignment="Left" VerticalAlignment="Top">
            </Image>
        </Grid>
    </Grid>

Добавлено через 1 минуту

Конечное решение зависит ещё от того нужны ли вам кроме обрезки ещё параллельно и свойства Margin, Width, Height

Добавлено через 8 минут

Если геометрия одноцветная (Pen и Fill (или Brush) одинаковые для всей), то лучше резать саму геометрию, чем Drawing. Drawing используется тогда, когда уже нужно визуализировать геометрию с использованием Pen и Fill, а

DrawingGroup

, когда у разных круп геометрии - разные Pen и Fill.

Добавлено через 2 минуты

Например можно в вашем случае используется две кисти

Brush="#FF272525"

Brush="#FFFFFFFF"

. Но по факту вы получаете только

Thinness

одного цвета заполненный другим.

Это у вас только для упрощения примера так, или в реале большего и не нужно?