158 lines
9.6 KiB
XML
158 lines
9.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<UserControl
|
|
x:Class="IPClab3.Hack.Hack"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:local="using:IPClab3"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:c="using:IPClab3.Converters"
|
|
mc:Ignorable="d">
|
|
|
|
<UserControl.Resources>
|
|
<c:MemoryAddressConverter x:Key="MemoryAddressConverter"/>
|
|
</UserControl.Resources>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="*"/>
|
|
</Grid.RowDefinitions>
|
|
<Border Margin="12" Background="{ThemeResource LayerFillColorDefaultBrush}" CornerRadius="8">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<TextBlock Text="Выберите и запустите процесс" Style="{ThemeResource BodyLargeTextBlockStyle}" Margin="16"/>
|
|
<Grid Grid.Row="1" HorizontalAlignment="Stretch" Margin="16,0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBox IsReadOnly="True" Margin="0,0,8,0" Text="{x:Bind ViewModel.FilePath, Mode=OneWay}"/>
|
|
<Button Grid.Column="1" Content="Выбрать" Click="Button_Click"/>
|
|
</Grid>
|
|
<Button Grid.Row="2" Style="{ThemeResource AccentButtonStyle}" Margin="16" HorizontalAlignment="Stretch" Command="{x:Bind ViewModel.StartProcessCommand}">
|
|
<Button.Content>
|
|
<StackPanel Orientation="Horizontal">
|
|
<FontIcon Glyph="" />
|
|
<TextBlock Text="Запустить процесс" Margin="8,0"/>
|
|
</StackPanel>
|
|
</Button.Content>
|
|
</Button>
|
|
</Grid>
|
|
</Border>
|
|
<TextBlock Grid.Row="1" Text="или" HorizontalAlignment="Center" Style="{ThemeResource BodyLargeTextBlockStyle}"/>
|
|
<Border Grid.Row="2" Margin="12" Background="{ThemeResource LayerFillColorDefaultBrush}" CornerRadius="8">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<TextBlock Text="Выберите запущенный процесс" Style="{ThemeResource BodyLargeTextBlockStyle}" Margin="16"/>
|
|
<AutoSuggestBox Grid.Row="1" PlaceholderText="Введите имя процесса" HorizontalAlignment="Stretch" Margin="16,0"
|
|
TextMemberPath="ProcessName" DisplayMemberPath="ProcessName" QueryIcon="Find"
|
|
Text="{x:Bind ViewModel.SearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
ItemsSource="{x:Bind ViewModel.Suggestions, Mode=OneWay}"
|
|
SuggestionChosen="AutoSuggestBox_SuggestionChosen" TextChanged="AutoSuggestBox_TextChanged"
|
|
/>
|
|
<Button Grid.Row="2" Style="{ThemeResource AccentButtonStyle}" Margin="16" HorizontalAlignment="Stretch" PointerEntered="Button_PointerEntered" Command="{x:Bind ViewModel.AttachProcessCommand}">
|
|
<Button.Content>
|
|
<StackPanel Orientation="Horizontal">
|
|
<FontIcon Glyph="" />
|
|
<TextBlock Margin="8,0">
|
|
<Run Text="Подключить процесс: "/><Run Text="{x:Bind ViewModel.SelectedProcess.Pid, Mode=OneWay, TargetNullValue='', FallbackValue=''}"/>
|
|
</TextBlock>
|
|
</StackPanel>
|
|
</Button.Content>
|
|
</Button>
|
|
</Grid>
|
|
</Border>
|
|
<Border Grid.Row="3" Height="1" BorderThickness="0,1,0,0" BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"/>
|
|
<Border Grid.Row="4" Margin="12" Background="{ThemeResource LayerFillColorDefaultBrush}" CornerRadius="8">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<TextBlock Text="{x:Bind ViewModel.ReadData, Mode=OneWay}" Style="{ThemeResource BodyLargeTextBlockStyle}" Margin="16"/>
|
|
<Grid Grid.Row="1" HorizontalAlignment="Stretch" Margin="16,0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="3*"/>
|
|
<ColumnDefinition Width="2*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid Margin="0,0,8,0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<TextBlock Margin="0,0,8,0" Text="Адрес: " VerticalAlignment="Center"/>
|
|
<TextBox Grid.Column="1" VerticalAlignment="Center" PlaceholderText="0x7FFF5000 или 00401000" Text="{x:Bind ViewModel.MemoryAddress, Converter={StaticResource MemoryAddressConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
|
|
</Grid>
|
|
<Grid Grid.Column="1" Margin="8,0,0,0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Margin="0,0,8,0" Text="Длина: " VerticalAlignment="Center"/>
|
|
<NumberBox Grid.Column="1" SmallChange="1" Value="{x:Bind ViewModel.ReadLength, Mode=TwoWay}" Maximum="1024" VerticalAlignment="Center" SpinButtonPlacementMode="Compact"/>
|
|
</Grid>
|
|
</Grid>
|
|
<Button Grid.Row="2" Style="{ThemeResource AccentButtonStyle}" Margin="16" HorizontalAlignment="Stretch" Command="{x:Bind ViewModel.ReadMemoryCommand}">
|
|
<Button.Content>
|
|
<StackPanel Orientation="Horizontal">
|
|
<FontIcon Glyph="" />
|
|
<TextBlock Margin="8,0" Text="Прочитать"/>
|
|
</StackPanel>
|
|
</Button.Content>
|
|
</Button>
|
|
</Grid>
|
|
</Border>
|
|
<Border Grid.Row="5" Margin="12" Background="{ThemeResource LayerFillColorDefaultBrush}" CornerRadius="8">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<TextBox Text="{x:Bind ViewModel.WriteData, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" FontSize="{ThemeResource BodyLargeTextBlockFontSize}" Margin="16"/>
|
|
<Grid Grid.Row="1" HorizontalAlignment="Stretch" Margin="16,0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="3*"/>
|
|
<ColumnDefinition Width="2*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid Margin="0,0,8,0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Margin="0,0,8,0" Text="Адрес: " VerticalAlignment="Center"/>
|
|
<TextBox Grid.Column="1" VerticalAlignment="Center" PlaceholderText="0x7FFF5000 или 00401000" Text="{x:Bind ViewModel.MemoryAddress, Converter={StaticResource MemoryAddressConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
|
|
</Grid>
|
|
<TextBlock Grid.Column="1" Margin="0,0,8,0" VerticalAlignment="Center" HorizontalAlignment="Center">
|
|
<Run Text="Длина: "/><Run Text="{x:Bind ViewModel.WriteData.Length, Mode=OneWay}"/>
|
|
</TextBlock>
|
|
</Grid>
|
|
<Button Grid.Row="2" Style="{ThemeResource AccentButtonStyle}" Margin="16" HorizontalAlignment="Stretch" Command="{x:Bind ViewModel.WriteMemoryCommand}">
|
|
<Button.Content>
|
|
<StackPanel Orientation="Horizontal">
|
|
<FontIcon Glyph="" />
|
|
<TextBlock Margin="8,0" Text="Записать"/>
|
|
</StackPanel>
|
|
</Button.Content>
|
|
</Button>
|
|
</Grid>
|
|
</Border>
|
|
<InfoBar Severity="Success" Grid.RowSpan="7" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Margin="16" Title="Записано успешно!" IsOpen="{x:Bind ViewModel.IsSuccessOpen, Mode=TwoWay}"/>
|
|
</Grid>
|
|
</UserControl>
|