Files
better-genshin-impact/BetterGenshinImpact/View/MaskWindow.xaml
2025-05-03 22:41:06 +08:00

253 lines
13 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<Window x:Class="BetterGenshinImpact.View.MaskWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
xmlns:viewModel="clr-namespace:BetterGenshinImpact.ViewModel"
Title="MaskWindow"
Width="500"
Height="800"
d:DesignWidth="1920"
d:DesignHeight="1080"
AllowsTransparency="True"
FontFamily="{DynamicResource TextThemeFontFamily}"
ShowInTaskbar="False"
Topmost="True"
WindowStyle="None"
mc:Ignorable="d">
<Window.DataContext>
<viewModel:MaskWindowViewModel />
</Window.DataContext>
<b:Interaction.Triggers>
<b:EventTrigger EventName="Loaded">
<b:InvokeCommandAction Command="{Binding LoadedCommand}" CommandParameter="{Binding}" />
</b:EventTrigger>
</b:Interaction.Triggers>
<Window.Background>
<SolidColorBrush Opacity="0" Color="#FFB0B0B0" />
</Window.Background>
<Window.Style>
<Style TargetType="Window">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Window">
<ContentPresenter />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Style>
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/View/Controls/Draggable/DraggableResizableItem.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<AdornerDecorator ClipToBounds="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20*" />
<ColumnDefinition Width="23*" />
<ColumnDefinition Width="250*" />
<ColumnDefinition Width="1392*" />
<ColumnDefinition Width="178*" />
<ColumnDefinition Width="57*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1020*" />
<RowDefinition Height="33*" />
<RowDefinition Height="22*" />
<RowDefinition Height="5*" />
</Grid.RowDefinitions>
<!-- 日志和状态 -->
<Grid Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="5"
HorizontalAlignment="Left" VerticalAlignment="Bottom"
Height="213" Width="477">
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="188" />
</Grid.RowDefinitions>
<ContentControl x:Name="LogTextBoxWrapper"
Grid.Row="1"
Width="477" Height="188"
HorizontalAlignment="Left" VerticalAlignment="Top"
Style="{StaticResource OuterDraggableResizableItemStyle}">
<ContentControl.Effect>
<DropShadowEffect Opacity="0.4" BlurRadius="4" ShadowDepth="0" />
</ContentControl.Effect>
<RichTextBox x:Name="LogTextBox"
Padding="0,5,0,0"
Background="Transparent"
BorderThickness="0"
FontFamily="Cascadia Mono, Consolas, Courier New, monospace, /Assets/Fonts/MiSans-Regular.ttf#MiSans"
FontSize="12"
Foreground="LightGray"
IsHitTestVisible="False"
VerticalScrollBarVisibility="Hidden"
Visibility="{Binding Config.MaskWindowConfig.ShowLogBox, Converter={StaticResource BooleanToVisibilityConverter}}">
<d:FlowDocument FontFamily="{Binding FontFamily, ElementName=LogTextBox}" FontSize="{Binding FontSize, ElementName=LogTextBox}">
<Paragraph>
<Run>[00:00:00 INF] 更好的原神</Run>
<LineBreak/>
<Run>[00:00:00 INF] 遮罩窗口已启动游戏大小1920x1080素材缩放1.00DPI缩放1</Run>
<LineBreak/>
<Run>[00:00:01 INF] Never gonna give you up</Run>
<LineBreak/>
<Run>[00:00:01 INF] Never gonna let you down</Run>
</Paragraph>
</d:FlowDocument>
</RichTextBox>
</ContentControl>
<ContentControl x:Name="StatusWrapper"
Grid.Row="0"
Width="477" Height="24"
HorizontalAlignment="Left" VerticalAlignment="Top"
Style="{StaticResource OuterDraggableResizableItemStyle}">
<ContentControl.Effect>
<DropShadowEffect Opacity="0.4" BlurRadius="4" ShadowDepth="0" Color="LightGray" />
</ContentControl.Effect>
<ui:ListView ItemsSource="{Binding StatusList}"
Visibility="{Binding Config.MaskWindowConfig.ShowStatus, Converter={StaticResource BooleanToVisibilityConverter}}"
d:ItemsSource="{d:SampleData}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Focusable" Value="False" />
<Setter Property="IsHitTestVisible" Value="False" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Margin" Value="0,0,8,0" />
</Style>
</StackPanel.Resources>
<TextBlock FontFamily="{StaticResource FgiIconFontFamily}"
FontSize="12"
Text="{Binding Name}">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="LightGray" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsEnabled}" Value="True">
<Setter Property="Foreground" Value="LightGreen" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ui:ListView>
</ContentControl>
</Grid>
<!-- uid遮盖 -->
<Rectangle Grid.Column="4"
Grid.Row="2"
Fill="White"
IsHitTestVisible="False"
Visibility="{Binding Config.MaskWindowConfig.UidCoverEnabled, Converter={StaticResource BooleanToVisibilityConverter}}" />
<!-- 方位 -->
<Viewbox Grid.Column="2" Grid.Row="0"
HorizontalAlignment="Left" VerticalAlignment="Top">
<Grid Width="250" Height="250"
Visibility="{Binding Config.MaskWindowConfig.DirectionsEnabled, Converter={StaticResource BooleanToVisibilityConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.Effect>
<DropShadowEffect Opacity="0.4" BlurRadius="8" ShadowDepth="0" />
</Grid.Effect>
<TextBlock Grid.Column="0"
Grid.Row="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="-24,0,0,0"
FontSize="34"
FontStretch="Medium"
FontWeight="DemiBold"
Foreground="White"
Text="西" />
<TextBlock Grid.Column="2"
Grid.Row="4"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,0,-24"
FontSize="34"
FontStretch="Medium"
FontWeight="DemiBold"
Foreground="White"
Text="南" />
<TextBlock Grid.Column="4"
Grid.Row="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,0,-24,0"
FontSize="34"
FontStretch="Medium"
FontWeight="DemiBold"
Foreground="White"
Text="东" />
<TextBlock Grid.Column="2"
Grid.Row="0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="0,-24,0,0"
FontSize="34"
FontStretch="Medium"
FontWeight="DemiBold"
Foreground="White"
Text="北" />
</Grid>
</Viewbox>
<!-- 展示FPS -->
<Border Margin="4,4,0,0"
Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3"
HorizontalAlignment="Left" VerticalAlignment="Top"
Background="#00000000"
CornerRadius="4"
Opacity="0.5"
Visibility="{Binding Config.MaskWindowConfig.ShowFps, Converter={StaticResource BooleanToVisibilityConverter}}">
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="{StaticResource DigitalThemeFontFamily}"
FontSize="16"
Foreground="White"
Text="{Binding Fps}" />
</Border>
</Grid>
</AdornerDecorator>
</Window>