Browse Source

demo acrylic brush.

feature/acrylic-brush-investigation
Dan Walmsley 6 years ago
parent
commit
a208936162
  1. BIN
      samples/ControlCatalog/Assets/ocean.png
  2. 83
      samples/ControlCatalog/MainWindow.xaml
  3. 6
      samples/ControlCatalog/MainWindow.xaml.cs
  4. 17
      samples/ControlCatalog/ViewModels/MainWindowViewModel.cs

BIN
samples/ControlCatalog/Assets/ocean.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

83
samples/ControlCatalog/MainWindow.xaml

@ -1,5 +1,4 @@
<Window xmlns="https://github.com/avaloniaui" MinWidth="500" MinHeight="300"
Width="1024" Height="800"
<Window xmlns="https://github.com/avaloniaui" MinWidth="500" MinHeight="300"
xmlns:pages="clr-namespace:ControlCatalog.Pages"
Title="Avalonia Control Gallery"
Icon="/Assets/test_icon.ico"
@ -10,81 +9,17 @@
ExtendClientAreaToDecorationsHint="{Binding ExtendClientAreaEnabled}"
ExtendClientAreaChromeHints="{Binding ChromeHints}"
ExtendClientAreaTitleBarHeightHint="{Binding TitleBarHeight}"
TransparencyLevelHint="{Binding TransparencyLevel}"
TransparencyLevelHint="AcrylicBlur"
x:Name="MainWindow"
x:Class="ControlCatalog.MainWindow" WindowState="{Binding WindowState, Mode=TwoWay}" Background="{x:Null}">
<NativeMenu.Menu>
<NativeMenu>
<NativeMenuItem Header="File">
<NativeMenuItem.Menu>
<NativeMenu>
<NativeMenuItem Icon="/Assets/test_icon.ico" Header="Open" Clicked="OnOpenClicked" Gesture="Ctrl+O"/>
<NativeMenuItemSeperator/>
<NativeMenuItem Icon="/Assets/github_icon.png" Header="Recent">
<NativeMenuItem.Menu>
<NativeMenu/>
</NativeMenuItem.Menu>
</NativeMenuItem>
<NativeMenuItemSeperator/>
<NativeMenuItem Header="{x:Static local:MainWindow.MenuQuitHeader}"
Gesture="{x:Static local:MainWindow.MenuQuitGesture}"
Clicked="OnCloseClicked" />
</NativeMenu>
</NativeMenuItem.Menu>
</NativeMenuItem>
<NativeMenuItem Header="Edit">
<NativeMenuItem.Menu>
<NativeMenu>
<NativeMenuItem Header="Copy"/>
<NativeMenuItem Header="Paste"/>
</NativeMenu>
</NativeMenuItem.Menu>
</NativeMenuItem>
<NativeMenuItem Header="Options">
<NativeMenuItem.Menu>
<NativeMenu>
<NativeMenuItem Header="Check Me (None)"
Command="{Binding ToggleMenuItemCheckedCommand}"
ToggleType="None"
IsChecked="{Binding IsMenuItemChecked}" />
<NativeMenuItem Header="Check Me (CheckBox)"
Command="{Binding ToggleMenuItemCheckedCommand}"
ToggleType="CheckBox"
IsChecked="{Binding IsMenuItemChecked}" />
<NativeMenuItem Header="Check Me (Radio)"
Command="{Binding ToggleMenuItemCheckedCommand}"
ToggleType="Radio"
IsChecked="{Binding IsMenuItemChecked}" />
</NativeMenu>
</NativeMenuItem.Menu>
</NativeMenuItem>
</NativeMenu>
</NativeMenu.Menu>
<Panel DockPanel.Dock="Left" Width="400" Height="400" Background="Green">
<Window.DataTemplates>
<DataTemplate DataType="vm:NotificationViewModel">
<v:CustomNotificationView />
</DataTemplate>
</Window.DataTemplates>
<Panel>
<Panel Margin="{Binding #MainWindow.OffScreenMargin}">
<DockPanel LastChildFill="True" Margin="{Binding #MainWindow.WindowDecorationMargins}">
<Menu Name="MainMenu" DockPanel.Dock="Top">
<MenuItem Header="File">
<MenuItem Header="Exit" Command="{Binding ExitCommand}" />
</MenuItem>
<MenuItem Header="Help">
<MenuItem Header="About" Command="{Binding AboutCommand}" />
</MenuItem>
</Menu>
<local:MainView />
</DockPanel>
<Button Content="{Binding Test}" Background="Red" FontSize="55" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<Panel>
<Panel.Background>
<AcrylicBrush TintColor="Black" BackgroundSource="BackDrop" TintOpacity="0.0" TintLuminosityOpacity="0.4" />
</Panel.Background>
</Panel>
<Border IsVisible="{Binding ExtendClientAreaEnabled}" BorderThickness="1 1 1 0" CornerRadius="4 4 0 0" BorderBrush="#55000000" Height="22" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="250 8 0 0">
<Border.Background>
<SolidColorBrush Color="White" Opacity="0.7" />
</Border.Background>
<TextBlock Margin="5 5 5 0" Text="Content In TitleBar" />
</Border>
</Panel>
</Window>

6
samples/ControlCatalog/MainWindow.xaml.cs

@ -28,10 +28,10 @@ namespace ControlCatalog
};
DataContext = new MainWindowViewModel(_notificationArea);
_recentMenu = ((NativeMenu.GetMenu(this).Items[0] as NativeMenuItem).Menu.Items[2] as NativeMenuItem).Menu;
//_recentMenu = ((NativeMenu.GetMenu(this).Items[0] as NativeMenuItem).Menu.Items[2] as NativeMenuItem).Menu;
var mainMenu = this.FindControl<Menu>("MainMenu");
mainMenu.AttachedToVisualTree += MenuAttached;
//var mainMenu = this.FindControl<Menu>("MainMenu");
//mainMenu.AttachedToVisualTree += MenuAttached;
}
public static string MenuQuitHeader => RuntimeInformation.IsOSPlatform(OSPlatform.OSX) ? "Quit Avalonia" : "E_xit";

17
samples/ControlCatalog/ViewModels/MainWindowViewModel.cs

@ -6,6 +6,7 @@ using Avalonia.Dialogs;
using Avalonia.Platform;
using System;
using ReactiveUI;
using System.Reactive.Linq;
namespace ControlCatalog.ViewModels
{
@ -84,8 +85,24 @@ namespace ControlCatalog.ViewModels
SystemTitleBarEnabled = true;
SystemChromeButtonsEnabled = true;
TitleBarHeight = -1;
Observable.Interval(TimeSpan.FromSeconds(0.05))
.ObserveOn(RxApp.MainThreadScheduler)
.Subscribe(x =>
{
Test = x.ToString();
});
}
private string _test;
public string Test
{
get { return _test; }
set { this.RaiseAndSetIfChanged(ref _test, value); }
}
private int _transparencyLevel;
public int TransparencyLevel

Loading…
Cancel
Save