Fixed visual bug with margin in narrow state (#383)
* Reworked paddings/margins for mail list * Fix composer page * Moved layput changes from code behind to visual states
This commit is contained in:
@@ -122,7 +122,6 @@
|
||||
</Page.Resources>
|
||||
|
||||
<Grid
|
||||
Padding="7,0"
|
||||
AllowDrop="True"
|
||||
DragLeave="OnComposeGridDragLeave"
|
||||
DragOver="OnComposeGridDragOver"
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
</Grid>
|
||||
</wino:BasePage.ShellContent>
|
||||
|
||||
<Grid x:Name="RootGrid" Padding="0,0,0,7">
|
||||
<Grid x:Name="RootGrid">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition x:Name="MailListColumn" Width="{x:Bind ViewModel.MailListLength, Mode=OneWay, Converter={StaticResource GridLengthConverter}}" />
|
||||
<ColumnDefinition x:Name="RendererColumn" Width="*" />
|
||||
@@ -291,7 +291,7 @@
|
||||
Unchecked="SelectAllCheckboxUnchecked"
|
||||
Visibility="{x:Bind helpers:XamlHelpers.IsSelectionModeMultiple(MailListView.SelectionMode), Mode=OneWay}" />
|
||||
|
||||
|
||||
|
||||
<!-- Folders -->
|
||||
<toolkit:Segmented
|
||||
Grid.Row="1"
|
||||
@@ -518,7 +518,10 @@
|
||||
Minimum="270"
|
||||
Opacity="0" />
|
||||
|
||||
<Grid x:Name="RenderingGrid" Grid.Column="1">
|
||||
<Grid
|
||||
x:Name="RenderingGrid"
|
||||
Grid.Column="1"
|
||||
Margin="7,0,0,0">
|
||||
<!-- Mail Rendering Frame -->
|
||||
<Frame x:Name="RenderingFrame" IsNavigationStackEnabled="False" />
|
||||
|
||||
@@ -539,5 +542,38 @@
|
||||
Text="{x:Bind ViewModel.SelectedMessageText, Mode=OneWay}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup x:Name="LayoutStates">
|
||||
<VisualState x:Name="BothPanelsNoMailSelected">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="RenderingFrame.Visibility" Value="Collapsed" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
<VisualState x:Name="BothPanelsMailSelected">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="NoMailSelectedPanel.Visibility" Value="Collapsed" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
<VisualState x:Name="NarrowMailList">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="MailListContainer.(Grid.ColumnSpan)" Value="2" />
|
||||
<Setter Target="MailListSizer.Visibility" Value="Collapsed" />
|
||||
<Setter Target="RenderingGrid.Visibility" Value="Collapsed" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
<VisualState x:Name="NarrowRenderer">
|
||||
<VisualState.Setters>
|
||||
<Setter Target="RenderingGrid.(Grid.Column)" Value="0" />
|
||||
<Setter Target="RenderingGrid.(Grid.ColumnSpan)" Value="2" />
|
||||
<Setter Target="RenderingGrid.Margin" Value="0" />
|
||||
<Setter Target="RenderingGrid.Visibility" Value="Visible" />
|
||||
<Setter Target="NoMailSelectedPanel.Visibility" Value="Collapsed" />
|
||||
<Setter Target="MailListSizer.Visibility" Value="Collapsed" />
|
||||
<Setter Target="MailListContainer.Visibility" Value="Collapsed" />
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
</Grid>
|
||||
</abstract:MailListPageAbstract>
|
||||
|
||||
@@ -493,71 +493,29 @@ namespace Wino.Views
|
||||
|
||||
private void UpdateAdaptiveness()
|
||||
{
|
||||
bool shouldDisplayNoMessagePanel, shouldDisplayMailingList, shouldDisplayRenderingFrame;
|
||||
|
||||
bool isMultiSelectionEnabled = ViewModel.IsMultiSelectionModeEnabled || KeyPressService.IsCtrlKeyPressed();
|
||||
|
||||
// This is the smallest state UI can get.
|
||||
// Either mailing list or rendering grid is visible.
|
||||
if (StatePersistenceService.IsReaderNarrowed)
|
||||
{
|
||||
// Start visibility checks by no message panel.
|
||||
shouldDisplayMailingList = isMultiSelectionEnabled ? true : (!ViewModel.HasSelectedItems || ViewModel.HasMultipleItemSelections);
|
||||
shouldDisplayNoMessagePanel = shouldDisplayMailingList ? false : !ViewModel.HasSelectedItems || ViewModel.HasMultipleItemSelections;
|
||||
shouldDisplayRenderingFrame = shouldDisplayMailingList ? false : !shouldDisplayNoMessagePanel;
|
||||
}
|
||||
else
|
||||
{
|
||||
shouldDisplayMailingList = true;
|
||||
shouldDisplayNoMessagePanel = !ViewModel.HasSelectedItems || ViewModel.HasMultipleItemSelections;
|
||||
shouldDisplayRenderingFrame = !shouldDisplayNoMessagePanel;
|
||||
}
|
||||
|
||||
MailListContainer.Visibility = shouldDisplayMailingList ? Visibility.Visible : Visibility.Collapsed;
|
||||
RenderingFrame.Visibility = shouldDisplayRenderingFrame ? Visibility.Visible : Visibility.Collapsed;
|
||||
NoMailSelectedPanel.Visibility = shouldDisplayNoMessagePanel ? Visibility.Visible : Visibility.Collapsed;
|
||||
|
||||
if (StatePersistenceService.IsReaderNarrowed == true)
|
||||
{
|
||||
if (ViewModel.HasSingleItemSelection && !isMultiSelectionEnabled)
|
||||
{
|
||||
MailListColumn.Width = new GridLength(0);
|
||||
RendererColumn.Width = new GridLength(1, GridUnitType.Star);
|
||||
|
||||
Grid.SetColumn(MailListContainer, 0);
|
||||
Grid.SetColumnSpan(RenderingGrid, 2);
|
||||
MailListContainer.Visibility = Visibility.Collapsed;
|
||||
RenderingGrid.Visibility = Visibility.Visible;
|
||||
VisualStateManager.GoToState(this, "NarrowRenderer", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
MailListColumn.Width = new GridLength(1, GridUnitType.Star);
|
||||
RendererColumn.Width = new GridLength(0);
|
||||
|
||||
Grid.SetColumnSpan(MailListContainer, 2);
|
||||
MailListContainer.Margin = new Thickness(7, 0, 7, 0);
|
||||
MailListContainer.Visibility = Visibility.Visible;
|
||||
RenderingGrid.Visibility = Visibility.Collapsed;
|
||||
SearchBar.Margin = new Thickness(8, 0, -2, 0);
|
||||
MailListSizer.Visibility = Visibility.Collapsed;
|
||||
VisualStateManager.GoToState(this, "NarrowMailList", true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MailListColumn.Width = new GridLength(StatePersistenceService.MailListPaneLength);
|
||||
RendererColumn.Width = new GridLength(1, GridUnitType.Star);
|
||||
|
||||
MailListContainer.Margin = new Thickness(0, 0, 0, 0);
|
||||
|
||||
Grid.SetColumn(MailListContainer, 0);
|
||||
Grid.SetColumn(RenderingGrid, 1);
|
||||
Grid.SetColumnSpan(MailListContainer, 1);
|
||||
Grid.SetColumnSpan(RenderingGrid, 1);
|
||||
|
||||
MailListContainer.Visibility = Visibility.Visible;
|
||||
RenderingGrid.Visibility = Visibility.Visible;
|
||||
SearchBar.Margin = new Thickness(2, 0, -2, 0);
|
||||
MailListSizer.Visibility = Visibility.Visible;
|
||||
if (ViewModel.HasSingleItemSelection && !isMultiSelectionEnabled)
|
||||
{
|
||||
VisualStateManager.GoToState(this, "BothPanelsMailSelected", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
VisualStateManager.GoToState(this, "BothPanelsNoMailSelected", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,10 +117,7 @@
|
||||
</Page.Resources>
|
||||
|
||||
<!-- Attachments and WebView2 -->
|
||||
<Grid
|
||||
x:Name="RendererGridFrame"
|
||||
Padding="7,0"
|
||||
RowSpacing="7">
|
||||
<Grid x:Name="RendererGridFrame" RowSpacing="7">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
|
||||
@@ -11,8 +11,7 @@
|
||||
Style="{StaticResource PageStyle}"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<Border
|
||||
Style="{StaticResource PageRootBorderStyle}">
|
||||
<Border Style="{StaticResource PageRootBorderStyle}">
|
||||
<Grid
|
||||
MaxWidth="900"
|
||||
Padding="20"
|
||||
|
||||
Reference in New Issue
Block a user