Xaml IMultiValueConverter矩形转换器返回错误的大小

Xaml IMultiValueConverter矩形转换器返回错误的大小,xaml,multibinding,imultivalueconverter,drawingbrush,geometrydrawing,Xaml,Multibinding,Imultivalueconverter,Drawingbrush,Geometrydrawing,当我使用以下XAML时: <Canvas> <Canvas.Background> <DrawingBrush> <DrawingBrush.Drawing> <DrawingGroup> <GeometryDrawing>

当我使用以下XAML时:

<Canvas>
<Canvas.Background>
            <DrawingBrush>
                <DrawingBrush.Drawing>
                    <DrawingGroup>
                        
                        <GeometryDrawing>
                            <GeometryDrawing.Geometry>
                                <RectangleGeometry>
                                    <RectangleGeometry.Rect>
                                        <MultiBinding Converter="{StaticResource MyRectConverter}">
                                            <Binding Path="ActualWidth" RelativeSource="{RelativeSource AncestorType={x:Type Canvas}}" />
                                            <Binding Path="ActualHeight" RelativeSource="{RelativeSource AncestorType={x:Type Canvas}}" />
                                            <Binding Source="{StaticResource rectNW}" />
                                        </MultiBinding>
                                    </RectangleGeometry.Rect>
                                </RectangleGeometry>
                            </GeometryDrawing.Geometry>
                            <GeometryDrawing.Pen>
                                <Pen Brush="Yellow" Thickness="2" />
                            </GeometryDrawing.Pen>
                        </GeometryDrawing>
                        
                    </DrawingGroup>
                </DrawingBrush.Drawing>
            </DrawingBrush>
        </Canvas.Background>
</Canvas>
我应该在画布的左上角得到一个小矩形。相反,我在整个画布上画了一个矩形。我做错了什么

另一件奇怪的事:如果我更改newrect中的值,它似乎只是更改组成矩形的线条的宽度,而不是更改矩形的大小……而矩形仍然只是整个画布上的一个大矩形。我想我得到的结果是这样的:

<RectangleGeometry Rect="0,0,100,100"/>

但我真正想要的结果更像:

<Rectangle x:Name="rectNW" Canvas.Top="0" Canvas.Left="0" Height="100" Width="100" Stroke="Red" StrokeThickness="5"/>

您没有设置DrawingBrush的拉伸属性。默认值是Fill。您可能还需要查看其视口和视口框属性。
<Rectangle x:Name="rectNW" Canvas.Top="0" Canvas.Left="0" Height="100" Width="100" Stroke="Red" StrokeThickness="5"/>