C# SplitView处于压缩模式时拉伸SplitView.Pane的内容

C# SplitView处于压缩模式时拉伸SplitView.Pane的内容,c#,xaml,winapp,C#,Xaml,Winapp,我正在尝试使用SplitView控件创建导航栏。我将它的DisplayMode属性设置为CompactInline,并为CompactPaneLength和OpenPaneLength属性设置了两个不同的值。 问题是,当SplitView关闭(压缩)时,其窗格的内容将不知道新的大小,因此,如果我在其中放置一个Border元素,该元素将不会被拉伸并超出压缩窗格区域: <Grid Background="{StaticResource ApplicationPageBackgroundThe

我正在尝试使用SplitView控件创建导航栏。我将它的DisplayMode属性设置为CompactInline,并为CompactPaneLength和OpenPaneLength属性设置了两个不同的值。 问题是,当SplitView关闭(压缩)时,其窗格的内容将不知道新的大小,因此,如果我在其中放置一个Border元素,该元素将不会被拉伸并超出压缩窗格区域:

 <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <SplitView IsPaneOpen="False" CompactPaneLength="100" OpenPaneLength="200" DisplayMode="CompactInline">
        <SplitView.Pane>
            <Border BorderBrush="Blue" Height="50"
                    BorderThickness="4"
                    VerticalAlignment="Top">
                <FontIcon Glyph="&#xE094;"
                          Width="40"
                          Height="40" />
            </Border>
        </SplitView.Pane>
    </SplitView>
</Grid>

下面是一张图片,演示了问题:


问题是:如何在不使用事件处理程序和代码隐藏的情况下解决问题?

您的compactPane宽度设置为100 px。由于边界的宽度不受限制,它将拉伸,成为100像素。边界的内容将以中心为中心


将CompactPane width设置为50,或将边框宽度设置为50以解决此问题

很抱歉,提供的图像与xaml代码不匹配,我已对其进行了更新,忘记“50”。问题是边框控件没有拉伸,这很明显,因为我们看不到它的右边缘,并且内容没有居中。此外,我们不能给边框控件指定固定的宽度,因为它必须在打开/关闭窗格时调整大小。SplitView面板的一点是它没有调整其内容的大小。它只会隐藏任何溢出的内容。是的,我希望有一个干净的解决办法来解决这个问题。一个棘手的解决方法是使用绑定和转换器,但由于转换器需要访问PaneView的两个属性(CompactPaneLength和OpenPaneLength),并且winrt不支持多重绑定,因此这变得有点棘手。我对SplitView控件运行了一些检查,但没有一个显示窗格的当前宽度。我敢打赌,您需要执行一些代码隐藏/MVVM,并将宽度绑定到IsPaneOpen和Compact/OpenPaneLength。