c# - 当 SplitView 处于紧凑模式时拉伸(stretch) SplitView.Pane 的内容

标签 c# xaml winapp

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

 <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>

这是一张演示问题的图片:

SplitView Pane

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

最佳答案

您的 compactPane 宽度设置为 100 像素。由于边框的宽度没有限制,它会拉伸(stretch),变成 100 px。边框的内容会居中。

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

关于c# - 当 SplitView 处于紧凑模式时拉伸(stretch) SplitView.Pane 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29710993/

相关文章:

c# - RelativeSource 绑定(bind)适用于 Style 但不适用于 ControlTemplate

c# - Uri.AbsolutePath 用空格弄乱了路径

c# - Windows 应用拼写检查

vb.net - 什么都没有和 system.DBNull 的区别

c# - 如何在 Visual Web Developer 2010 Express 中设置带有 NUnit 单元测试的 ASP .NET MVC 应用程序?

c# 分配引用

c# - 如何在 Silverlight 中使用 TextRange?

c# - 不同属性的通用 foreach 循环

c# - 在 DataTemplate 中显示数据绑定(bind)的 StackPanel

c# - 在 MVVM 中数据绑定(bind) ObservableCollection<T>