2015-09-17 2 views
1

Я использую новый элемент управления SplitView, чтобы создать меню гамбургера в моем приложении UWP. Вопрос в том, могу ли я определить относительное или процентное значение для его свойства OpenPaneLength? Я хочу достичь того, что ширина SplitViewPane составляет, например, 80% ширины устройства.UWP - Splitview определяет относительное значение для OpenPaneLength

Спасибо!

Это XAML код SplitView

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

ответ

3

Вам просто нужно следить за каждый раз, когда IsPaneOpen флаг установлен в true, вычислить OpenPaneLength, основанный на его вышестоящего контейнера ActualWidth.

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


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

Благодарим за решение! работающий блестящий – nor0x