mirror of
https://github.com/BeyondDimension/SteamTools.git
synced 2026-10-28 23:19:53 +08:00
背景样式改进
背景图片现在可生效在每一个窗口上
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
</Application.DataTemplates>
|
||||
<Application.Resources>
|
||||
<converters:IsNullConverter x:Key="IsNullConverter" />
|
||||
<converters:IsVisibleToOpacity x:Key="IsVisibleToOpacity" />
|
||||
<converters:NameToFontFamilyConverter x:Key="NameToFontFamilyConverter" />
|
||||
<converters:DrawingKeyValueConverter x:Key="DrawingKeyValueConverter" />
|
||||
<converters:BitmapAssetValueConverter x:Key="BitmapAssetValueConverter" />
|
||||
@@ -24,9 +25,9 @@
|
||||
<StyleInclude Source="avares://System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Styles/ThemeAccent.xaml" />
|
||||
<StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml" />
|
||||
|
||||
<sty:FluentAvaloniaTheme ControlsVersion="2"
|
||||
RequestedTheme="Dark"
|
||||
DefaultToUserTheme="False"
|
||||
<sty:FluentAvaloniaTheme ControlsVersion="2"
|
||||
RequestedTheme="Dark"
|
||||
DefaultToUserTheme="False"
|
||||
UseSegoeUIOnWindows="False"/>
|
||||
<!--<StyleInclude Source="avares://AvaloniaEdit/AvaloniaEdit.xaml"/>-->
|
||||
<StyleInclude Source="avares://System.Application.SteamTools.Client.Desktop.Avalonia/Application/UI/Styles/Controls.xaml" />
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
using Avalonia.Data;
|
||||
using Avalonia.Data.Converters;
|
||||
using Avalonia.Media;
|
||||
using FluentAvalonia.UI.Media;
|
||||
using System;
|
||||
using System.Globalization;
|
||||
|
||||
namespace System.Application.Converters
|
||||
{
|
||||
public class IsVisibleToOpacity : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
double defaultOpacity = 1;
|
||||
if (parameter is double d)
|
||||
{
|
||||
defaultOpacity = d;
|
||||
}
|
||||
|
||||
if (value is bool b)
|
||||
{
|
||||
return b ? defaultOpacity : 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if (value is double d)
|
||||
{
|
||||
return d > 0;
|
||||
}
|
||||
return BindingOperations.DoNothing;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,17 +4,34 @@
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:ms="clr-namespace:System.Application.Models.Settings;assembly=System.Application.SteamTools.Client.Desktop"
|
||||
mc:Ignorable="d"
|
||||
x:Name="u" IsHitTestVisible="False"
|
||||
x:Name="u"
|
||||
IsHitTestVisible="False"
|
||||
Background="Transparent"
|
||||
x:Class="System.Application.UI.Views.Controls.TitleBar">
|
||||
<Panel>
|
||||
<DockPanel x:Name="Back" HorizontalAlignment="Stretch">
|
||||
<Panel.Background>
|
||||
<ImageBrush Source="{ReflectionBinding Source={x:Static ms:UISettings.BackgroundImagePath},Path=Value, Mode=OneWay,Converter={StaticResource BitmapAssetValueConverter}}"
|
||||
Stretch="UniformToFill"
|
||||
Opacity="{ReflectionBinding Source={x:Static ms:UISettings.EnableCustomBackgroundImage},Path=Value, Mode=OneWay,Converter={StaticResource IsVisibleToOpacity},ConverterParameter=0.8}"/>
|
||||
</Panel.Background>
|
||||
<!--<Image IsHitTestVisible="False"
|
||||
IsVisible="{ReflectionBinding Source={x:Static ms:UISettings.EnableCustomBackgroundImage},Path=Value, Mode=OneWay}"
|
||||
Source="{ReflectionBinding Source={x:Static ms:UISettings.BackgroundImagePath},Path=Value, Mode=OneWay,Converter={StaticResource BitmapAssetValueConverter}}"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
Stretch="UniformToFill"
|
||||
Opacity="0.8">
|
||||
</Image>-->
|
||||
<DockPanel HorizontalAlignment="Stretch">
|
||||
<ExperimentalAcrylicBorder DockPanel.Dock="Top" IsHitTestVisible="False" Height="{StaticResource TitleBarHeight}">
|
||||
<ExperimentalAcrylicBorder.Material>
|
||||
<ExperimentalAcrylicMaterial TintColor="{DynamicResource BackgroundColorKey}" MaterialOpacity="{ReflectionBinding Value,Source={x:Static ms:UISettings.AcrylicOpacity},Mode=OneWay}" TintOpacity="1"/>
|
||||
</ExperimentalAcrylicBorder.Material>
|
||||
</ExperimentalAcrylicBorder>
|
||||
<ExperimentalAcrylicBorder DockPanel.Dock="Bottom" IsHitTestVisible="False" Opacity="{StaticResource ContentOpacity}">
|
||||
<ExperimentalAcrylicBorder DockPanel.Dock="Bottom"
|
||||
x:Name="Back"
|
||||
IsHitTestVisible="False">
|
||||
<!--Opacity="{StaticResource ContentOpacity}"-->
|
||||
<ExperimentalAcrylicBorder.Material>
|
||||
<ExperimentalAcrylicMaterial TintColor="{DynamicResource ThemeColorKey}" MaterialOpacity="{ReflectionBinding Value,Source={x:Static ms:UISettings.AcrylicOpacity},Mode=OneWay}" TintOpacity="1"/>
|
||||
</ExperimentalAcrylicBorder.Material>
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace System.Application.UI.Views.Controls
|
||||
title.HorizontalAlignment = HorizontalAlignment.Center;
|
||||
}
|
||||
|
||||
var back = this.FindControl<DockPanel>("Back");
|
||||
var back = this.FindControl<ExperimentalAcrylicBorder>("Back");
|
||||
this.GetObservable(IsVisibleBackgroundProperty)
|
||||
.Subscribe(x => back.IsVisible = x);
|
||||
}
|
||||
|
||||
@@ -16,49 +16,28 @@
|
||||
x:DataType="vm:MainWindowViewModel"
|
||||
x:CompileBindings="True">
|
||||
<Panel>
|
||||
<Image IsHitTestVisible="False"
|
||||
IsVisible="{ReflectionBinding Source={x:Static ms:UISettings.EnableCustomBackgroundImage},Path=Value, Mode=OneWay}"
|
||||
Source="{ReflectionBinding Source={x:Static ms:UISettings.BackgroundImagePath},Path=Value, Mode=OneWay,Converter={StaticResource BitmapAssetValueConverter}}"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
Stretch="Fill"
|
||||
Opacity="0.8">
|
||||
</Image>
|
||||
<!--Title-->
|
||||
<controls:TitleBar IsVisibleBackground="False"/>
|
||||
|
||||
<!--Background-->
|
||||
<Grid ZIndex="0"
|
||||
IsHitTestVisible="False"
|
||||
ColumnDefinitions="Auto,*"
|
||||
RowDefinitions="30,*">
|
||||
<ExperimentalAcrylicBorder IsHitTestVisible="False"
|
||||
Grid.ColumnSpan="2">
|
||||
<ExperimentalAcrylicBorder.Material>
|
||||
<ExperimentalAcrylicMaterial TintColor="{DynamicResource BackgroundColorKey}"
|
||||
MaterialOpacity="{ReflectionBinding Value,Source={x:Static ms:UISettings.AcrylicOpacity},Mode=OneWay}"
|
||||
TintOpacity="1"/>
|
||||
</ExperimentalAcrylicBorder.Material>
|
||||
</ExperimentalAcrylicBorder>
|
||||
<DockPanel IsHitTestVisible="False" Margin="{StaticResource TitleBarAfterMargin}">
|
||||
<ExperimentalAcrylicBorder x:Name="NavBarBackground"
|
||||
Grid.Row="1"
|
||||
IsHitTestVisible="False"
|
||||
IsHitTestVisible="False"
|
||||
DockPanel.Dock="Left"
|
||||
Width="240">
|
||||
<ExperimentalAcrylicBorder.Material>
|
||||
<ExperimentalAcrylicMaterial TintColor="{DynamicResource BackgroundColorKey}" MaterialOpacity="{ReflectionBinding Value,Source={x:Static ms:UISettings.AcrylicOpacity},Mode=OneWay}" TintOpacity="1"/>
|
||||
</ExperimentalAcrylicBorder.Material>
|
||||
</ExperimentalAcrylicBorder>
|
||||
<ExperimentalAcrylicBorder IsHitTestVisible="False"
|
||||
Grid.Row="1"
|
||||
Grid.Column="1">
|
||||
<ExperimentalAcrylicBorder IsHitTestVisible="False" DockPanel.Dock="Right">
|
||||
<ExperimentalAcrylicBorder.Material>
|
||||
<ExperimentalAcrylicMaterial TintColor="{DynamicResource ThemeColorKey}"
|
||||
MaterialOpacity="{ReflectionBinding Value,Source={x:Static ms:UISettings.AcrylicOpacity},Mode=OneWay}"
|
||||
TintOpacity="1"/>
|
||||
</ExperimentalAcrylicBorder.Material>
|
||||
</ExperimentalAcrylicBorder>
|
||||
</Grid>
|
||||
</DockPanel>
|
||||
|
||||
<!--Title-->
|
||||
<controls:TitleBar IsVisibleBackground="False"/>
|
||||
<!--<Grid ColumnDefinitions="240,*,Auto">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Height="110" VerticalAlignment="Top">
|
||||
<Image Source="/Application/UI/Assets/Icon.ico" Height="64" Width="64" VerticalAlignment="Center" Margin="-8,0,0,0"/>
|
||||
@@ -186,7 +165,7 @@
|
||||
|
||||
<!--Content-->
|
||||
<ui:NavigationView x:Name="NavigationView"
|
||||
Margin="0 30 0 0"
|
||||
Margin="{StaticResource TitleBarAfterMargin}"
|
||||
Background="Transparent"
|
||||
PaneDisplayMode="Left"
|
||||
AlwaysShowHeader="True"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
WindowStartupLocation="CenterOwner"
|
||||
SizeToContent="WidthAndHeight"
|
||||
MinWidth="450" MinHeight="50"
|
||||
MaxWidth="900"
|
||||
MaxWidth="900" MaxHeight="600"
|
||||
ShowInTaskbar="False"
|
||||
Padding="0" Background="Transparent"
|
||||
ExtendClientAreaTitleBarHeightHint="30"
|
||||
|
||||
Reference in New Issue
Block a user