feat: add separator.

This commit is contained in:
rabbitism
2024-02-14 01:07:22 +08:00
parent 32f5662370
commit f2073f4eb3
4 changed files with 71 additions and 111 deletions

View File

@@ -20,13 +20,18 @@
<TextBlock Grid.Row="1" Grid.Column="0" Text="{ReflectionBinding #menu.SelectedItem.Header}" />
<Border Grid.Row="2" Grid.Column="0" Theme="{DynamicResource CardBorder}" HorizontalAlignment="Left" Padding="0">
<u:NavMenu
Header="Hello Ursa"
Name="menu"
Header="Welcome to Ursa!"
HeaderBinding="{Binding Header}"
IconBinding="{Binding IconIndex}"
IsHorizontalCollapsed="{Binding #collapse.IsChecked, Mode=OneWay}"
ItemsSource="{Binding MenuItems}"
SubMenuBinding="{Binding Children}">
<u:NavMenu.Styles>
<Style Selector="u|NavMenuItem" x:DataType="vm:MenuItem">
<Setter Property="IsSeparator" Value="{Binding IsSeparator}"></Setter>
</Style>
</u:NavMenu.Styles>
<u:NavMenu.IconTemplate>
<DataTemplate DataType="{x:Type x:Int32}">
<u:TwoTonePathIcon
@@ -42,7 +47,11 @@
</DataTemplate>
</u:NavMenu.IconTemplate>
<u:NavMenu.Footer>
<Button>Collapse</Button>
<Image
Width="48"
Height="48"
RenderOptions.BitmapInterpolationMode="HighQuality"
Source="../Assets/Ursa.ico" />
</u:NavMenu.Footer>
</u:NavMenu>
</Border>
@@ -76,16 +85,5 @@
</u:NavMenuItem.Icon>
</u:NavMenuItem>
</u:NavMenu>
<StackPanel HorizontalAlignment="Left">
</StackPanel>
</Grid>
</UserControl>

View File

@@ -19,7 +19,7 @@ public class NavMenuDemoViewModel: ObservableObject
new MenuItem() { Header = "How to Contribute" },
new MenuItem() { Header = "Development Workflow" },
}},
new MenuItem() { Header = "Design Principles" },
new MenuItem() { Header = "Design Principles"},
new MenuItem() { Header = "Contributing", Children =
{
new MenuItem() { Header = "Code of Conduct" },
@@ -27,6 +27,7 @@ public class NavMenuDemoViewModel: ObservableObject
new MenuItem() { Header = "Development Workflow" },
}},
}},
new MenuItem { Header = "Controls", IsSeparator = true},
new MenuItem { Header = "Badge" },
new MenuItem { Header = "Banner" },
new MenuItem { Header = "ButtonGroup" },
@@ -57,11 +58,13 @@ public class NavMenuDemoViewModel: ObservableObject
public class MenuItem
{
public string? Header { get; set; }
public string? Icon { get; set; }
public int IconIndex { get; set; }
public ICommand NavigationCommand { get; set; }
static Random r = new Random();
public string? Header { get; set; }
public int IconIndex { get; set; }
public bool IsSeparator { get; set; }
public ICommand NavigationCommand { get; set; }
public MenuItem()
{
NavigationCommand = new AsyncRelayCommand(OnNavigate);