Почему происходит это отсечение - PullRequest
2 голосов
/ 08 июля 2011

Обратите внимание, что в коде я не поместил обрезку сетки, почему этот прямоугольник отображается обрезанным по размеру сетки.

Я добавил смещение, чтобы показать, что даже если я переместу его в сторону, заливка сетки не будет красной.

    <Grid Height="135" Width="162">
        <Rectangle Width="300" Height="249" HorizontalAlignment="Center" VerticalAlignment="Center" Fill="#FFDB1919" UseLayoutRounding="False">
            <Rectangle.Projection>
                <PlaneProjection LocalOffsetX="-42"/>
            </Rectangle.Projection>

        </Rectangle>
    </Grid>

Ответы [ 2 ]

2 голосов
/ 08 июля 2011

Сетки по умолчанию имеют обрезку содержимого.

Самое быстрое решение - поместить прямоугольник на холст (который по умолчанию не имеет отсечения):

<Grid Height="135" Width="162">
    <Canvas>
        <Rectangle Width="300" Height="249" HorizontalAlignment="Center" VerticalAlignment="Center" Fill="#FFDB1919" UseLayoutRounding="False" StrokeThickness="5">
            <Rectangle.Projection>
                <PlaneProjection LocalOffsetX="-42"/>
            </Rectangle.Projection>
        </Rectangle>
    </Canvas>
</Grid>

enter image description here

1 голос
/ 08 июля 2011

Вот что здесь происходит:

1. WPF layout is done. it will place the 
   rectangle in the center as it was specified.
2. The rectangle will be clipped by the Grid.
3. The Projection transformation is applied after all this stuff.
   In your case you did move already clipped rectangle by -42 pixels
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...