<?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>
<?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>