Splitview定义OpenPaneLength的相对值

本文关键字:相对 OpenPaneLength 定义 Splitview | 更新日期: 2023-09-27 18:13:04

我使用新的SplitView控件在我的UWP应用程序中创建一个汉堡包菜单。我的问题是,如果我可以定义一个相对或百分比值,它的OpenPaneLength属性?例如,我想实现SplitViewPane的宽度是设备宽度的80%。

谢谢!

这是SplitViewXAML代码

<SplitView x:Name="ShellSplitView"
           DisplayMode="Overlay"
           IsPaneOpen="False"
           OpenPaneLength="300">
    <SplitView.Pane>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="*" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <RadioButton x:Name="SettingsButton"
                         Grid.Row="1"
                         Content="Settings"
                         Checked="OnSettingsButtonChecked" />
        </Grid>
    </SplitView.Pane>
    <SplitView.Content>...</SplitView.Content>
</SplitView>

Splitview定义OpenPaneLength的相对值

您只需要监视IsPaneOpen标志何时设置为true,根据其父容器的ActualWidth计算OpenPaneLength

this.SplitView.RegisterPropertyChangedCallback(SplitView.IsPaneOpenProperty, IsPaneOpenPropertyChanged);

private void IsPaneOpenPropertyChanged(DependencyObject sender, DependencyProperty dp)
{
    if (this.SplitView.IsPaneOpen)
    {
        this.SplitView.OpenPaneLength = this.LayoutRoot.ActualWidth * .8;
    }
}