Compare commits

..

11 Commits

Author SHA1 Message Date
Zhang Dian
a0f52c1d76 fix: update border background color in DrawerPageDemo.axaml. 2026-04-27 21:38:16 +08:00
Zhang Dian
9aceef70ec fix: fix bottom bar styles. 2026-04-27 21:12:57 +08:00
Zhang Dian
aa4139b09e Update DrawerPageDemo.axaml.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-26 17:48:01 +08:00
Zhang Dian
5c3fb046cd Update DrawerPageDemo.axaml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-26 17:47:07 +08:00
Zhang Dian
b209531c1c fix: fix DrawerPage title vertical alignment to Center. 2026-04-26 17:33:43 +08:00
Zhang Dian
164eff08b8 Merge branch 'main' into drawerpage
# Conflicts:
#	demo/Semi.Avalonia.Demo/Views/MainView.axaml
2026-04-26 17:21:20 +08:00
Zhang Dian
6fc6e3000f feat: add customizations for DrawerPageDemo. 2026-04-26 16:08:28 +08:00
Zhang Dian
d164acea21 feat: enhance navigation and UI structure in MainView and Application. (#811)
* feat: enhance navigation and UI structure in MainView and Application.

* feat: implement singleton pattern for PaletteDemoViewModel and add initialization check

* feat: set FontWeight to Normal for navigation button in MainView

---------

Co-authored-by: Dong Bin <popmessiah@hotmail.com>
2026-04-24 19:58:27 +08:00
Zhang Dian
89d6808214 feat: add locale resource for navigation drawer toggle button text. 2026-04-24 18:28:14 +08:00
Zhang Dian
ec6515b7ce fix: using ContentPreseter and add HeaderTemplate. 2026-04-24 18:28:13 +08:00
Copilot
1f10fd680f Add git commit message convention under .github (#789) 2026-04-24 14:48:16 +08:00
22 changed files with 254 additions and 148 deletions

92
.github/COMMIT_CONVENTION.md vendored Normal file
View File

@@ -0,0 +1,92 @@
# Git Commit Message Convention
This project follows the [Conventional Commits](https://www.conventionalcommits.org/) specification for commit messages.
## Format
```
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
```
## Types
| Type | Description |
|------|-------------|
| `feat` | A new feature |
| `fix` | A bug fix |
| `docs` | Documentation only changes |
| `style` | Changes that do not affect the meaning of the code (formatting, missing semicolons, etc.) |
| `refactor` | A code change that neither fixes a bug nor adds a feature |
| `perf` | A code change that improves performance |
| `test` | Adding missing tests or correcting existing tests |
| `build` | Changes that affect the build system or external dependencies |
| `ci` | Changes to CI configuration files and scripts |
| `chore` | Other changes that don't modify source or test files |
| `revert` | Reverts a previous commit |
## Rules
1. **Limit the subject line to 50 characters** (72 character hard limit)
2. **Use the imperative mood** in the subject line (e.g., "add feature" not "added feature")
3. **Do not end the subject line with a period**
4. **Use lowercase** for the description (e.g., "add feature" not "Add feature")
5. **Separate subject from body with a blank line**
6. **Wrap the body at 72 characters**
7. **Use the body to explain what and why**, not how
8. **Reference issues and pull requests** in the footer
## Scope
The scope should be the name of the package or area affected (e.g., `button`, `datepicker`, `theme`, `demo`).
## Examples
### Simple commit
```
feat(button): add loading state support
```
### Commit with body
```
fix(datepicker): correct month navigation overflow
When navigating past December, the month index wrapped to a
negative value instead of rolling over to January of the next year.
```
### Commit with breaking change
```
feat(theme)!: rename SemiColorPrimary to SemiColorBrand
BREAKING CHANGE: The token SemiColorPrimary has been renamed to
SemiColorBrand. Update all references in your custom theme files.
```
### Commit referencing an issue
```
fix(textbox): placeholder not visible in dark mode
Closes #123
```
## Breaking Changes
Breaking changes must be indicated by appending a `!` after the type/scope, or by including a `BREAKING CHANGE:` footer. Both methods may be used together.
## Revert Commits
When reverting a previous commit, use the `revert` type and reference the reverted commit SHA in the footer:
```
revert: feat(button): add loading state support
Revert commit a1b2c3d.
```

View File

@@ -10,45 +10,84 @@
<DockPanel> <DockPanel>
<ScrollViewer DockPanel.Dock="Right" Width="260"> <ScrollViewer DockPanel.Dock="Right" Width="260">
<StackPanel Margin="12" Spacing="8"> <StackPanel Margin="12" Spacing="8">
<TextBlock Text="Configuration" FontWeight="SemiBold" FontSize="16" <TextBlock
Foreground="{DynamicResource SemiColorText0}" /> Theme="{DynamicResource TitleTextBlock}"
Classes="H4"
Text="Configuration" />
<Button Content="Toggle Drawer" <CheckBox Name="ToggleDrawerCheck"
HorizontalAlignment="Stretch" Content="Toggle Drawer" />
Click="OnToggleDrawer" />
<Separator />
<CheckBox Name="GestureCheck" <CheckBox Name="GestureCheck"
Content="Gesture Enabled" Content="Gesture Enabled"
IsChecked="True" IsChecked="True" />
IsCheckedChanged="OnGestureChanged" />
<ComboBox SelectionChanged="OnLayoutChanged" > <TextBlock Text="Behavior" FontSize="12" />
<ComboBoxItem Content="CompactOverlay" /> <ComboBox
<ComboBoxItem Content="CompactInline" /> Name="BehaviorComboBox"
<ComboBoxItem Content="Split" /> HorizontalAlignment="Stretch"
<ComboBoxItem Content="Overlay" /> SelectedIndex="0">
<DrawerBehavior>Auto</DrawerBehavior>
<DrawerBehavior>Flyout</DrawerBehavior>
<DrawerBehavior>Locked</DrawerBehavior>
<DrawerBehavior>Disabled</DrawerBehavior>
</ComboBox> </ComboBox>
<Separator /> <TextBlock Text="Layout" FontSize="12" />
<ComboBox
Name="LayoutComboBox"
HorizontalAlignment="Stretch"
SelectedIndex="0">
<DrawerLayoutBehavior>Overlay</DrawerLayoutBehavior>
<DrawerLayoutBehavior>Split</DrawerLayoutBehavior>
<DrawerLayoutBehavior>CompactOverlay</DrawerLayoutBehavior>
<DrawerLayoutBehavior>CompactInline</DrawerLayoutBehavior>
</ComboBox>
<TextBlock Text="Status" FontWeight="SemiBold" FontSize="14" /> <TextBlock Text="Placement" FontSize="12" />
<TextBlock Name="StatusText" <ComboBox
Text="Drawer: Closed" Name="PlacementComboBox"
Opacity="0.7" HorizontalAlignment="Stretch"
TextWrapping="Wrap" /> SelectedIndex="0">
<DrawerPlacement>Left</DrawerPlacement>
<DrawerPlacement>Right</DrawerPlacement>
<DrawerPlacement>Top</DrawerPlacement>
<DrawerPlacement>Bottom</DrawerPlacement>
</ComboBox>
<TextBlock Text="Compact Drawer Length" FontSize="12" />
<StackPanel Orientation="Horizontal" Spacing="8">
<Slider Name="CompactDrawerLengthSlider"
Minimum="0" Maximum="250" Value="80"
TickFrequency="1"
IsSnapToTickEnabled="True"
Width="150" />
<TextBlock Text="{Binding #CompactDrawerLengthSlider.Value}" />
</StackPanel>
<TextBlock Text="Drawer Length" FontSize="12" />
<StackPanel Orientation="Horizontal" Spacing="8">
<Slider Name="DrawerLengthSlider"
Minimum="150" Maximum="400" Value="260"
TickFrequency="1"
IsSnapToTickEnabled="True"
Width="150" />
<TextBlock Text="{Binding #DrawerLengthSlider.Value}" />
</StackPanel>
</StackPanel> </StackPanel>
</ScrollViewer> </ScrollViewer>
<Border DockPanel.Dock="Right" Width="1" Background="{DynamicResource SemiColorBackground0}" /> <Border DockPanel.Dock="Right" Width="1" Background="{DynamicResource SemiColorBorder}" />
<DrawerPage Name="DemoDrawer" <DrawerPage Name="DemoDrawer"
Margin="12" Margin="12"
Header="First Look" Header="First Look"
DrawerLayoutBehavior="Overlay" IsOpen="{Binding #ToggleDrawerCheck.IsChecked}"
CompactDrawerLength="80" IsGestureEnabled="{Binding #GestureCheck.IsChecked}"
DrawerLength="250"> DrawerBehavior="{Binding #BehaviorComboBox.SelectedItem}"
DrawerLayoutBehavior="{Binding #LayoutComboBox.SelectedItem}"
DrawerPlacement="{Binding #PlacementComboBox.SelectedItem}"
CompactDrawerLength="{Binding #CompactDrawerLengthSlider.Value}"
DrawerLength="{Binding #DrawerLengthSlider.Value}">
<DrawerPage.DrawerHeader> <DrawerPage.DrawerHeader>
<TextBlock Text="Menu" Margin="16" FontSize="18" FontWeight="SemiBold" Foreground="{DynamicResource SemiColorPrimary}" /> <TextBlock Text="Menu" Margin="16" FontSize="18" FontWeight="SemiBold" Foreground="{DynamicResource SemiColorPrimary}" />
</DrawerPage.DrawerHeader> </DrawerPage.DrawerHeader>

View File

@@ -1,8 +1,6 @@
using System; using System.Linq;
using System.Linq;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Input.GestureRecognizers; using Avalonia.Input.GestureRecognizers;
using Avalonia.Interactivity;
using Avalonia.Layout; using Avalonia.Layout;
namespace Semi.Avalonia.Demo.Pages; namespace Semi.Avalonia.Demo.Pages;
@@ -15,32 +13,6 @@ public partial class DrawerPageDemo : UserControl
EnableMouseSwipeGesture(DemoDrawer); EnableMouseSwipeGesture(DemoDrawer);
} }
protected override void OnLoaded(RoutedEventArgs e)
{
base.OnLoaded(e);
DemoDrawer.Opened += OnDrawerStatusChanged;
DemoDrawer.Closed += OnDrawerStatusChanged;
}
protected override void OnUnloaded(RoutedEventArgs e)
{
base.OnUnloaded(e);
DemoDrawer.Opened -= OnDrawerStatusChanged;
DemoDrawer.Closed -= OnDrawerStatusChanged;
}
private void OnDrawerStatusChanged(object? sender, EventArgs e) => UpdateStatus();
private void OnToggleDrawer(object? sender, RoutedEventArgs e)
{
DemoDrawer.IsOpen = !DemoDrawer.IsOpen;
}
private void OnGestureChanged(object? sender, RoutedEventArgs e)
{
DemoDrawer.IsGestureEnabled = GestureCheck.IsChecked == true;
}
private void OnMenuSelectionChanged(object? sender, SelectionChangedEventArgs e) private void OnMenuSelectionChanged(object? sender, SelectionChangedEventArgs e)
{ {
if (DrawerMenu.SelectedItem is ListBoxItem item) if (DrawerMenu.SelectedItem is ListBoxItem item)
@@ -62,11 +34,6 @@ public partial class DrawerPageDemo : UserControl
} }
} }
private void UpdateStatus()
{
StatusText.Text = $"Drawer: {(DemoDrawer.IsOpen ? "Open" : "Closed")}";
}
private static void EnableMouseSwipeGesture(Control control) private static void EnableMouseSwipeGesture(Control control)
{ {
var recognizer = control.GestureRecognizers var recognizer = control.GestureRecognizers
@@ -75,16 +42,4 @@ public partial class DrawerPageDemo : UserControl
recognizer?.IsMouseEnabled = true; recognizer?.IsMouseEnabled = true;
} }
private void OnLayoutChanged(object? sender, SelectionChangedEventArgs e)
{
DemoDrawer.DrawerLayoutBehavior = (sender as ComboBox)?.SelectedIndex switch
{
0 => DrawerLayoutBehavior.CompactOverlay,
1 => DrawerLayoutBehavior.CompactInline,
2 => DrawerLayoutBehavior.Split,
3 => DrawerLayoutBehavior.Overlay,
_ => DrawerLayoutBehavior.CompactOverlay
};
}
} }

View File

@@ -20,27 +20,23 @@
<!-- Compact-mode toggle: visible only in CompactOverlay/CompactInline. --> <!-- Compact-mode toggle: visible only in CompactOverlay/CompactInline. -->
<ToggleButton <ToggleButton
Name="PART_CompactPaneToggle" Name="PART_CompactPaneToggle"
DockPanel.Dock="Top"
AutomationProperties.Name="Toggle navigation drawer"
ToolTip.Tip="{DynamicResource STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER}"
Width="{DynamicResource ButtonDefaultHeight}" Width="{DynamicResource ButtonDefaultHeight}"
Height="{DynamicResource ButtonDefaultHeight}" Height="{DynamicResource ButtonDefaultHeight}"
HorizontalAlignment="Left" HorizontalAlignment="Left"
AutomationProperties.Name="Toggle navigation drawer"
Background="Transparent" Background="Transparent"
DockPanel.Dock="Top"
IsChecked="{Binding #PART_SplitView.IsPaneOpen, Mode=TwoWay}" IsChecked="{Binding #PART_SplitView.IsPaneOpen, Mode=TwoWay}"
IsVisible="False" IsVisible="False">
ToolTip.Tip="Toggle navigation drawer">
<Panel> <Panel>
<PathIcon <PathIcon
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="{DynamicResource DrawerPageMenuGlyph}" Data="{DynamicResource DrawerPageMenuGlyph}"
Foreground="{DynamicResource DrawerPagePaneButtonForeground}" Foreground="{DynamicResource DrawerPagePaneButtonForeground}"
IsVisible="{TemplateBinding DrawerIcon, Converter={x:Static ObjectConverters.IsNull}}" IsVisible="{TemplateBinding DrawerIcon, Converter={x:Static ObjectConverters.IsNull}}"
Theme="{DynamicResource InnerPathIcon}" /> Theme="{DynamicResource InnerPathIcon}" />
<ContentPresenter <ContentPresenter
Name="PART_CompactPaneIconPresenter" Name="PART_CompactPaneIconPresenter"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="{TemplateBinding DrawerIcon}" Content="{TemplateBinding DrawerIcon}"
ContentTemplate="{TemplateBinding DrawerIconTemplate}" ContentTemplate="{TemplateBinding DrawerIconTemplate}"
Foreground="{DynamicResource DrawerPagePaneButtonForeground}" Foreground="{DynamicResource DrawerPagePaneButtonForeground}"
@@ -49,117 +45,105 @@
</ToggleButton> </ToggleButton>
<ContentPresenter <ContentPresenter
Name="PART_DrawerHeader" Name="PART_DrawerHeader"
DockPanel.Dock="Top"
Background="{TemplateBinding DrawerHeaderBackground}" Background="{TemplateBinding DrawerHeaderBackground}"
Content="{TemplateBinding DrawerHeader}" Content="{TemplateBinding DrawerHeader}"
ContentTemplate="{TemplateBinding DrawerHeaderTemplate}" ContentTemplate="{TemplateBinding DrawerHeaderTemplate}"
DockPanel.Dock="Top" IsVisible="{TemplateBinding DrawerHeader, Converter={x:Static ObjectConverters.IsNotNull}}" />
IsVisible="{TemplateBinding DrawerHeader,
Converter={x:Static ObjectConverters.IsNotNull}}" />
<ContentPresenter <ContentPresenter
Name="PART_DrawerFooter" Name="PART_DrawerFooter"
DockPanel.Dock="Bottom"
Background="{TemplateBinding DrawerFooterBackground}" Background="{TemplateBinding DrawerFooterBackground}"
Content="{TemplateBinding DrawerFooter}" Content="{TemplateBinding DrawerFooter}"
ContentTemplate="{TemplateBinding DrawerFooterTemplate}" ContentTemplate="{TemplateBinding DrawerFooterTemplate}"
DockPanel.Dock="Bottom" IsVisible="{TemplateBinding DrawerFooter, Converter={x:Static ObjectConverters.IsNotNull}}" />
IsVisible="{TemplateBinding DrawerFooter,
Converter={x:Static ObjectConverters.IsNotNull}}" />
<ContentPresenter <ContentPresenter
Name="PART_DrawerPresenter" Name="PART_DrawerPresenter"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
Content="{TemplateBinding Drawer}" Content="{TemplateBinding Drawer}"
ContentTemplate="{TemplateBinding DrawerTemplate}" /> ContentTemplate="{TemplateBinding DrawerTemplate}" />
</DockPanel> </DockPanel>
</SplitView.Pane> </SplitView.Pane>
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <Panel>
<DockPanel Name="PART_ContentDock"> <DockPanel Name="PART_ContentDock">
<Border <Border
Name="PART_TopBar" Name="PART_TopBar"
DockPanel.Dock="Top"
Height="{DynamicResource DrawerPageTopBarMinHeight}" Height="{DynamicResource DrawerPageTopBarMinHeight}"
Padding="5" Background="{DynamicResource DrawerPageTopBarBackground}">
Background="{DynamicResource DrawerPageTopBarBackground}" <DockPanel>
DockPanel.Dock="Top">
<DockPanel HorizontalAlignment="Stretch">
<ToggleButton <ToggleButton
Name="PART_PaneButton" Name="PART_PaneButton"
DockPanel.Dock="Left"
AutomationProperties.Name="Toggle navigation drawer"
ToolTip.Tip="{DynamicResource STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER}"
Width="{DynamicResource ButtonDefaultHeight}" Width="{DynamicResource ButtonDefaultHeight}"
Height="{DynamicResource ButtonDefaultHeight}" Height="{DynamicResource ButtonDefaultHeight}"
AutomationProperties.Name="Toggle navigation drawer"
Background="Transparent" Background="Transparent"
DockPanel.Dock="Left" IsChecked="{Binding #PART_SplitView.IsPaneOpen, Mode=TwoWay}">
IsChecked="{Binding #PART_SplitView.IsPaneOpen, Mode=TwoWay}"
ToolTip.Tip="Toggle navigation drawer">
<Panel> <Panel>
<PathIcon <PathIcon
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="{DynamicResource DrawerPageMenuGlyph}" Data="{DynamicResource DrawerPageMenuGlyph}"
Foreground="{DynamicResource DrawerPagePaneButtonForeground}" Foreground="{DynamicResource DrawerPagePaneButtonForeground}"
IsVisible="{TemplateBinding DrawerIcon, Converter={x:Static ObjectConverters.IsNull}}" IsVisible="{TemplateBinding DrawerIcon, Converter={x:Static ObjectConverters.IsNull}}"
Theme="{DynamicResource InnerPathIcon}" /> Theme="{DynamicResource InnerPathIcon}" />
<ContentPresenter <ContentPresenter
Name="PART_PaneIconPresenter" Name="PART_PaneIconPresenter"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="{TemplateBinding DrawerIcon}" Content="{TemplateBinding DrawerIcon}"
ContentTemplate="{TemplateBinding DrawerIconTemplate}" ContentTemplate="{TemplateBinding DrawerIconTemplate}"
Foreground="{DynamicResource DrawerPagePaneButtonForeground}" Foreground="{DynamicResource DrawerPagePaneButtonForeground}"
IsVisible="{TemplateBinding DrawerIcon, Converter={x:Static ObjectConverters.IsNotNull}}" /> IsVisible="{TemplateBinding DrawerIcon, Converter={x:Static ObjectConverters.IsNotNull}}" />
</Panel> </Panel>
</ToggleButton> </ToggleButton>
<ContentControl <ContentPresenter
Name="PART_TitlePresenter" Name="PART_TitlePresenter"
Margin="8,0,0,0" Margin="{DynamicResource DrawerPageTitleMargin}"
VerticalAlignment="Center"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Content="{TemplateBinding Header}" Content="{TemplateBinding Header}"
FontSize="16" ContentTemplate="{TemplateBinding HeaderTemplate}"
FontWeight="SemiBold" FontSize="{DynamicResource DrawerPageTitleFontSize}"
IsVisible="{TemplateBinding Header, FontWeight="{DynamicResource DrawerPageTitleFontWeight}"
Converter={x:Static ObjectConverters.IsNotNull}}" /> IsVisible="{TemplateBinding Header, Converter={x:Static ObjectConverters.IsNotNull}}" />
</DockPanel> </DockPanel>
</Border> </Border>
<Border <Border
Name="PART_BottomBar" Name="PART_BottomBar"
Height="{DynamicResource DrawerPageTopBarMinHeight}"
Padding="5"
Background="{DynamicResource DrawerPageTopBarBackground}"
DockPanel.Dock="Bottom" DockPanel.Dock="Bottom"
Height="{DynamicResource DrawerPageTopBarMinHeight}"
Background="{DynamicResource DrawerPageTopBarBackground}"
IsVisible="False"> IsVisible="False">
<DockPanel HorizontalAlignment="Stretch"> <DockPanel>
<ToggleButton <ToggleButton
Name="PART_BottomPaneButton" Name="PART_BottomPaneButton"
AutomationProperties.Name="Toggle navigation drawer"
Background="Transparent"
DockPanel.Dock="Left" DockPanel.Dock="Left"
IsChecked="{Binding #PART_SplitView.IsPaneOpen, Mode=TwoWay}" AutomationProperties.Name="Toggle navigation drawer"
ToolTip.Tip="Toggle navigation drawer"> ToolTip.Tip="{DynamicResource STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER}"
Width="{DynamicResource ButtonDefaultHeight}"
Height="{DynamicResource ButtonDefaultHeight}"
Background="Transparent"
IsChecked="{Binding #PART_SplitView.IsPaneOpen, Mode=TwoWay}">
<Panel> <Panel>
<PathIcon <PathIcon
HorizontalAlignment="Center" Data="{DynamicResource DrawerPageMenuGlyph}"
VerticalAlignment="Center" Foreground="{DynamicResource DrawerPagePaneButtonForeground}"
Data="{DynamicResource DrawerPaneButtonIcon}"
IsVisible="{TemplateBinding DrawerIcon, Converter={x:Static ObjectConverters.IsNull}}" IsVisible="{TemplateBinding DrawerIcon, Converter={x:Static ObjectConverters.IsNull}}"
Theme="{DynamicResource InnerPathIcon}" /> Theme="{DynamicResource InnerPathIcon}" />
<ContentPresenter <ContentPresenter
Name="PART_BottomPaneIconPresenter" Name="PART_BottomPaneIconPresenter"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="{TemplateBinding DrawerIcon}" Content="{TemplateBinding DrawerIcon}"
ContentTemplate="{TemplateBinding DrawerIconTemplate}" ContentTemplate="{TemplateBinding DrawerIconTemplate}"
Foreground="{DynamicResource DrawerPagePaneButtonForeground}"
IsVisible="{TemplateBinding DrawerIcon, Converter={x:Static ObjectConverters.IsNotNull}}" /> IsVisible="{TemplateBinding DrawerIcon, Converter={x:Static ObjectConverters.IsNotNull}}" />
</Panel> </Panel>
</ToggleButton> </ToggleButton>
<ContentControl <ContentPresenter
Name="PART_BottomTitlePresenter" Name="PART_BottomTitlePresenter"
Margin="8,0,0,0" Margin="{DynamicResource DrawerPageTitleMargin}"
VerticalAlignment="Center"
VerticalContentAlignment="Center" VerticalContentAlignment="Center"
Content="{TemplateBinding Header}" Content="{TemplateBinding Header}"
FontSize="16" ContentTemplate="{TemplateBinding HeaderTemplate}"
FontWeight="SemiBold" FontSize="{DynamicResource DrawerPageTitleFontSize}"
IsVisible="{TemplateBinding Header, FontWeight="{DynamicResource DrawerPageTitleFontWeight}"
Converter={x:Static ObjectConverters.IsNotNull}}" /> IsVisible="{TemplateBinding Header, Converter={x:Static ObjectConverters.IsNotNull}}" />
</DockPanel> </DockPanel>
</Border> </Border>
<ContentPresenter <ContentPresenter
@@ -178,7 +162,7 @@
Background="{TemplateBinding BackdropBrush}" Background="{TemplateBinding BackdropBrush}"
IsHitTestVisible="False" IsHitTestVisible="False"
IsVisible="False" /> IsVisible="False" />
</Grid> </Panel>
</SplitView> </SplitView>
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Ausschneiden</x:String> <x:String x:Key="STRING_MENU_CUT">Ausschneiden</x:String>
<x:String x:Key="STRING_MENU_COPY">Kopieren</x:String> <x:String x:Key="STRING_MENU_COPY">Kopieren</x:String>
<x:String x:Key="STRING_MENU_PASTE">Einfügen</x:String> <x:String x:Key="STRING_MENU_PASTE">Einfügen</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Navigationsleiste umschalten</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">Dateiname</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">Dateiname</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Ausgeblendete Elemente anzeigen</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Ausgeblendete Elemente anzeigen</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Cut</x:String> <x:String x:Key="STRING_MENU_CUT">Cut</x:String>
<x:String x:Key="STRING_MENU_COPY">Copy</x:String> <x:String x:Key="STRING_MENU_COPY">Copy</x:String>
<x:String x:Key="STRING_MENU_PASTE">Paste</x:String> <x:String x:Key="STRING_MENU_PASTE">Paste</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Toggle navigation drawer</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">File name</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">File name</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Show hidden files</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Show hidden files</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Cut</x:String> <x:String x:Key="STRING_MENU_CUT">Cut</x:String>
<x:String x:Key="STRING_MENU_COPY">Copy</x:String> <x:String x:Key="STRING_MENU_COPY">Copy</x:String>
<x:String x:Key="STRING_MENU_PASTE">Paste</x:String> <x:String x:Key="STRING_MENU_PASTE">Paste</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Toggle navigation drawer</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">File name</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">File name</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Show hidden files</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Show hidden files</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Cortar</x:String> <x:String x:Key="STRING_MENU_CUT">Cortar</x:String>
<x:String x:Key="STRING_MENU_COPY">Copiar</x:String> <x:String x:Key="STRING_MENU_COPY">Copiar</x:String>
<x:String x:Key="STRING_MENU_PASTE">Pegar</x:String> <x:String x:Key="STRING_MENU_PASTE">Pegar</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Alternar panel de navegación</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">Nombre de fichero</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">Nombre de fichero</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Mostrar ficheros ocultos</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Mostrar ficheros ocultos</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Couper</x:String> <x:String x:Key="STRING_MENU_CUT">Couper</x:String>
<x:String x:Key="STRING_MENU_COPY">Copier</x:String> <x:String x:Key="STRING_MENU_COPY">Copier</x:String>
<x:String x:Key="STRING_MENU_PASTE">Coller</x:String> <x:String x:Key="STRING_MENU_PASTE">Coller</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Basculer le volet de navigation</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">Nom du fichier</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">Nom du fichier</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Afficher les fichiers cachés</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Afficher les fichiers cachés</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Taglia</x:String> <x:String x:Key="STRING_MENU_CUT">Taglia</x:String>
<x:String x:Key="STRING_MENU_COPY">Copia</x:String> <x:String x:Key="STRING_MENU_COPY">Copia</x:String>
<x:String x:Key="STRING_MENU_PASTE">Incolla</x:String> <x:String x:Key="STRING_MENU_PASTE">Incolla</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Attiva/disattiva riquadro di navigazione</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">Nome file</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">Nome file</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Mostra file nascosti</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Mostra file nascosti</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Taglia</x:String> <x:String x:Key="STRING_MENU_CUT">Taglia</x:String>
<x:String x:Key="STRING_MENU_COPY">Copia</x:String> <x:String x:Key="STRING_MENU_COPY">Copia</x:String>
<x:String x:Key="STRING_MENU_PASTE">Incolla</x:String> <x:String x:Key="STRING_MENU_PASTE">Incolla</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Attiva/disattiva riquadro di navigazione</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">Nome file</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">Nome file</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Mostra file nascosti</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Mostra file nascosti</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">切り取り</x:String> <x:String x:Key="STRING_MENU_CUT">切り取り</x:String>
<x:String x:Key="STRING_MENU_COPY">コピー</x:String> <x:String x:Key="STRING_MENU_COPY">コピー</x:String>
<x:String x:Key="STRING_MENU_PASTE">貼り付け</x:String> <x:String x:Key="STRING_MENU_PASTE">貼り付け</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">ナビゲーション ドロワーを切り替える</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">ファイル名</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">ファイル名</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">隠しファイルを表示</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">隠しファイルを表示</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">잘라내기</x:String> <x:String x:Key="STRING_MENU_CUT">잘라내기</x:String>
<x:String x:Key="STRING_MENU_COPY">복사</x:String> <x:String x:Key="STRING_MENU_COPY">복사</x:String>
<x:String x:Key="STRING_MENU_PASTE">붙여넣기</x:String> <x:String x:Key="STRING_MENU_PASTE">붙여넣기</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">탐색 창 전환</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">파일 이름</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">파일 이름</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">숨긴 파일 표시</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">숨긴 파일 표시</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Knippen</x:String> <x:String x:Key="STRING_MENU_CUT">Knippen</x:String>
<x:String x:Key="STRING_MENU_COPY">Kopiëren</x:String> <x:String x:Key="STRING_MENU_COPY">Kopiëren</x:String>
<x:String x:Key="STRING_MENU_PASTE">Plakken</x:String> <x:String x:Key="STRING_MENU_PASTE">Plakken</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Navigatievenster openen of sluiten</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">Bestandsnaam</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">Bestandsnaam</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Toon verborgen bestanden</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Toon verborgen bestanden</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Knippen</x:String> <x:String x:Key="STRING_MENU_CUT">Knippen</x:String>
<x:String x:Key="STRING_MENU_COPY">Kopiëren</x:String> <x:String x:Key="STRING_MENU_COPY">Kopiëren</x:String>
<x:String x:Key="STRING_MENU_PASTE">Plakken</x:String> <x:String x:Key="STRING_MENU_PASTE">Plakken</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Navigatievenster openen of sluiten</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">Bestandsnaam</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">Bestandsnaam</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Toon verborgen bestanden</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Toon verborgen bestanden</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Wytnij</x:String> <x:String x:Key="STRING_MENU_CUT">Wytnij</x:String>
<x:String x:Key="STRING_MENU_COPY">Kopiuj</x:String> <x:String x:Key="STRING_MENU_COPY">Kopiuj</x:String>
<x:String x:Key="STRING_MENU_PASTE">Wklej</x:String> <x:String x:Key="STRING_MENU_PASTE">Wklej</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Przełącz panel nawigacyjny</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">Nazwa pliku</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">Nazwa pliku</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Pokaż ukryte pliki</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Pokaż ukryte pliki</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Вырезать</x:String> <x:String x:Key="STRING_MENU_CUT">Вырезать</x:String>
<x:String x:Key="STRING_MENU_COPY">Копировать</x:String> <x:String x:Key="STRING_MENU_COPY">Копировать</x:String>
<x:String x:Key="STRING_MENU_PASTE">Вставить</x:String> <x:String x:Key="STRING_MENU_PASTE">Вставить</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Переключить панель навигации</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">Имя файла</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">Имя файла</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Показать скрытые файлы</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Показать скрытые файлы</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">Вирізати</x:String> <x:String x:Key="STRING_MENU_CUT">Вирізати</x:String>
<x:String x:Key="STRING_MENU_COPY">Копіювати</x:String> <x:String x:Key="STRING_MENU_COPY">Копіювати</x:String>
<x:String x:Key="STRING_MENU_PASTE">Вставити</x:String> <x:String x:Key="STRING_MENU_PASTE">Вставити</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">Перемкнути панель навігації</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">Ім'я файлу</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">Ім'я файлу</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Показати приховані папки</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">Показати приховані папки</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">剪切</x:String> <x:String x:Key="STRING_MENU_CUT">剪切</x:String>
<x:String x:Key="STRING_MENU_COPY">复制</x:String> <x:String x:Key="STRING_MENU_COPY">复制</x:String>
<x:String x:Key="STRING_MENU_PASTE">粘贴</x:String> <x:String x:Key="STRING_MENU_PASTE">粘贴</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">切换导航抽屉</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">文件名</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">文件名</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">显示隐藏文件</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">显示隐藏文件</x:String>

View File

@@ -14,6 +14,8 @@
<x:String x:Key="STRING_MENU_CUT">剪下</x:String> <x:String x:Key="STRING_MENU_CUT">剪下</x:String>
<x:String x:Key="STRING_MENU_COPY">複製</x:String> <x:String x:Key="STRING_MENU_COPY">複製</x:String>
<x:String x:Key="STRING_MENU_PASTE">貼上</x:String> <x:String x:Key="STRING_MENU_PASTE">貼上</x:String>
<!-- DrawerPage -->
<x:String x:Key="STRING_DRAWERPAGE_TOGGLE_NAVIGATION_DRAWER">切換導覽抽屜</x:String>
<!-- ManagedFileChooser --> <!-- ManagedFileChooser -->
<x:String x:Key="STRING_CHOOSER_FILE_NAME">檔案名</x:String> <x:String x:Key="STRING_CHOOSER_FILE_NAME">檔案名</x:String>
<x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">顯示隱藏檔案</x:String> <x:String x:Key="STRING_CHOOSER_SHOW_HIDDEN_FILES">顯示隱藏檔案</x:String>

View File

@@ -4,4 +4,8 @@
<!-- DrawerPage pane button --> <!-- DrawerPage pane button -->
<StaticResource x:Key="DrawerPageMenuGlyph" ResourceKey="SemiIconMenu" /> <StaticResource x:Key="DrawerPageMenuGlyph" ResourceKey="SemiIconMenu" />
<StaticResource x:Key="DrawerPageTitleFontSize" ResourceKey="SemiFontSizeHeader6" />
<StaticResource x:Key="DrawerPageTitleFontWeight" ResourceKey="SemiFontWeightBold" />
<Thickness x:Key="DrawerPageTitleMargin">8 0 0 0</Thickness>
</ResourceDictionary> </ResourceDictionary>