XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

HaloPixelToolBox

【WinUI3】基于USB HID通讯的花再音响工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
<?xml version="1.0" encoding="utf-8"?>
<Page
    x:Class="HaloPixelToolBox.Backend.Views.AddressResolveManagePage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:models="using:HaloPixelToolBox.Core.Models.Bar"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Loaded="Page_Loaded">

    <Grid RowSpacing="14">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <StackPanel Spacing="6">
            <TextBlock Text="动态解析地址" FontSize="28" FontWeight="SemiBold"/>
            <TextBlock Text="客户端会按网易云音乐版本从服务器读取这里的配置,并在本地缓存。基址和偏移支持十进制或 0x 十六进制格式。" TextWrapping="Wrap" Opacity="0.72"/>
        </StackPanel>

        <Border Grid.Row="1" Background="{ThemeResource CardBackgroundFillColorDefaultBrush}" BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}" BorderThickness="1" CornerRadius="8" Padding="16">
            <Grid ColumnSpacing="12" RowSpacing="10">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="160"/>
                    <ColumnDefinition Width="200"/>
                    <ColumnDefinition Width="220"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
                <TextBox Header="版本号" Text="{x:Bind ViewModel.Version, Mode=TwoWay}" PlaceholderText="3.1.35"/>
                <TextBox Grid.Column="1" Header="组件名称" Text="{x:Bind ViewModel.ModuleName, Mode=TwoWay}" PlaceholderText="cloudmusic.dll"/>
                <TextBox Grid.Column="2" Header="基址" Text="{x:Bind ViewModel.BaseAddressText, Mode=TwoWay}" PlaceholderText="0x01ED9690"/>
                <TextBox Grid.Column="3" Header="偏移(逗号或空格分隔)" Text="{x:Bind ViewModel.OffsetsText, Mode=TwoWay}" PlaceholderText="0x120, 0x8, 0x0"/>
                <StackPanel Grid.ColumnSpan="4" Grid.Row="1" Orientation="Horizontal" Spacing="10">
                    <Button Content="新建" Command="{x:Bind ViewModel.NewCommand}"/>
                    <Button Content="保存" Command="{x:Bind ViewModel.SaveCommand}"/>
                    <Button Content="删除选中项" Command="{x:Bind ViewModel.RemoveCommand}"/>
                    <Button Content="刷新" Command="{x:Bind ViewModel.RefreshCommand}"/>
                    <ProgressRing Width="24" Height="24" IsActive="{x:Bind ViewModel.IsBusy, Mode=OneWay}"/>
                    <TextBlock Text="{x:Bind ViewModel.StatusText, Mode=OneWay}" VerticalAlignment="Center" TextWrapping="Wrap"/>
                </StackPanel>
            </Grid>
        </Border>

        <ListView Grid.Row="2" ItemsSource="{x:Bind ViewModel.Items, Mode=OneWay}" SelectedItem="{x:Bind ViewModel.SelectedItem, Mode=TwoWay}" SelectionMode="Single">
            <ListView.Header>
                <Grid Padding="12,8" ColumnSpacing="16" Background="{ThemeResource SolidBackgroundFillColorTertiaryBrush}">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="130"/>
                        <ColumnDefinition Width="180"/>
                        <ColumnDefinition Width="180"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <TextBlock Text="版本" FontWeight="SemiBold"/>
                    <TextBlock Grid.Column="1" Text="组件" FontWeight="SemiBold"/>
                    <TextBlock Grid.Column="2" Text="基址" FontWeight="SemiBold"/>
                    <TextBlock Grid.Column="3" Text="偏移" FontWeight="SemiBold"/>
                </Grid>
            </ListView.Header>
            <ListView.ItemTemplate>
                <DataTemplate x:DataType="models:AddressResolverModel">
                    <Grid Padding="4" ColumnSpacing="16">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="130"/>
                            <ColumnDefinition Width="180"/>
                            <ColumnDefinition Width="180"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="{x:Bind Version}"/>
                        <TextBlock Grid.Column="1" Text="{x:Bind ModuleName}"/>
                        <TextBlock Grid.Column="2" Text="{x:Bind BaseAddressHex}"/>
                        <TextBlock Grid.Column="3" Text="{x:Bind OffsetsHex}" TextWrapping="Wrap"/>
                    </Grid>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </Grid>
</Page>