路径最大宽度

MaxWitdh of Path

我正在开发一个应用程序,但我遇到了同样的问题。 由于某些原因,Path 并没有拉伸到程序的整个区域window(我以编程方式将应用程序window拉伸到两个屏幕),但是路径似乎有其自己的限制宽度。这是 Path 本身

的标记
    <Grid >
    <InkCanvas Name="inkCanvas" 
           Cursor="Cross" 
           UseCustomCursor="True" 
           EditingMode="{Binding EditingMode}">
        <InkCanvas.InputBindings>
            <KeyBinding Command="{Binding CloseAppCommand}" 
                    Key="Esc"/>
            <KeyBinding Command="{Binding DrawModeCommand}" 
                    Key="F1"/>
        </InkCanvas.InputBindings>

        <i:Interaction.Behaviors>
            <if:MouseBehaviour MouseX="{Binding MouseX, Mode=OneWayToSource}"
                           MouseY="{Binding MouseY, Mode=OneWayToSource}" />
        </i:Interaction.Behaviors>

        <InkCanvas.Background>
            <ImageBrush ImageSource="{Binding Screenshot.Source}"></ImageBrush>
        </InkCanvas.Background>

        <Path Stroke="Black" Fill="Green" Opacity=".3">
            <Path.Data>
                <CombinedGeometry GeometryCombineMode="Exclude">
                    <CombinedGeometry.Geometry1>
                        <RectangleGeometry Rect="{Binding BlackoutRect.Rect}" >
                        </RectangleGeometry>
                    </CombinedGeometry.Geometry1>
                    <CombinedGeometry.Geometry2>
                        <RectangleGeometry Rect="{Binding SelectionRect.Rect}" >
                        </RectangleGeometry>
                    </CombinedGeometry.Geometry2>
                </CombinedGeometry>
            </Path.Data>
        </Path>
    </InkCanvas>
</Grid>

结果我们看到如下图:

https://imgur.com/nqbqHFO

例如,如果我们为路径指定 Width="300px"

<Path Stroke="Black" Fill="Green" Opacity=".3" Width="300px"...

,那么上面屏幕上绿色区域的宽度实际上会是300px,但是如果你指定例如300000px,图片将与上面的屏幕相同。也就是说,我得出的结论是 Path 元素具有最大宽度(顺便说一句,如果您指定 MaxWitdh="30000px",那么什么都不会无论如何更改,它将与上面的屏幕截图相同)

因此本帖的主要问题是:如何更改路径元素的最大大小?

InkCanvas 不会拉伸其子元素。

您可以添加一个执行所需布局的面板,并将其宽度和高度绑定到父级 InkCanvas 的实际宽度和实际高度:

<InkCanvas ...>
    ...
    <Grid Width="{Binding ActualWidth,
                  RelativeSource={RelativeSource AncestorType=InkCanvas}}"
          Height="{Binding ActualHeight,
                   RelativeSource={RelativeSource AncestorType=InkCanvas}}">

        <Path Stretch="Uniform" ...>
            ...
        </Path>
    </Grid>
</InkCanvas>