норм
This commit is contained in:
parent
af9466c0a6
commit
ad2025c52b
2 changed files with 47 additions and 14 deletions
|
|
@ -1,26 +1,26 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
|
|
||||||
x:Class="NotesDataAnalyst.GraphPage"
|
x:Class="NotesDataAnalyst.GraphPage"
|
||||||
Title="GraphPage">
|
Title="GraphPage">
|
||||||
|
|
||||||
<ContentPage.ToolbarItems>
|
<ContentPage.ToolbarItems>
|
||||||
<ToolbarItem Text="Add Node" Clicked="OnAddNodeClicked"/>
|
<ToolbarItem Text="Add Node" Clicked="OnAddNodeClicked"/>
|
||||||
<ToolbarItem Text="Добавить дочернюю" Clicked="OnChildClicked"/>
|
<ToolbarItem Text="Добавить дочернюю" Clicked="OnChildClicked"/>
|
||||||
|
<ToolbarItem Text="Изменить размер" Clicked="OnResizeNodeClicked" />
|
||||||
</ContentPage.ToolbarItems>
|
</ContentPage.ToolbarItems>
|
||||||
|
|
||||||
<ContentPage.Content>
|
<ContentPage.Content>
|
||||||
<AbsoluteLayout>
|
<AbsoluteLayout>
|
||||||
<GraphicsView x:Name="canvasView"
|
<GraphicsView x:Name="canvasView"
|
||||||
HeightRequest="800"
|
HeightRequest="800"
|
||||||
WidthRequest="800" />
|
WidthRequest="800" />
|
||||||
<!-- Поле для редактирования текста -->
|
<!-- Поле для редактирования текста -->
|
||||||
<Entry x:Name="textEditor"
|
<Entry x:Name="textEditor"
|
||||||
IsVisible="False"
|
IsVisible="False"
|
||||||
BackgroundColor="White"
|
BackgroundColor="White"
|
||||||
TextColor="Black"
|
TextColor="Black"
|
||||||
FontSize="18" />
|
FontSize="18" />
|
||||||
</AbsoluteLayout>
|
</AbsoluteLayout>
|
||||||
</ContentPage.Content>
|
</ContentPage.Content>
|
||||||
</ContentPage>
|
</ContentPage>
|
||||||
|
|
@ -29,14 +29,47 @@ namespace NotesDataAnalyst
|
||||||
canvasView.GestureRecognizers.Add(tapGesture);
|
canvasView.GestureRecognizers.Add(tapGesture);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async void OnResizeNodeClicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// Проверяем, выбрана ли нода
|
||||||
|
if (_selectedNode == null)
|
||||||
|
{
|
||||||
|
await DisplayAlert("Ошибка", "Сначала выберите ноду", "OK");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Открываем диалог для ввода новых размеров
|
||||||
|
var result = await DisplayPromptAsync("Изменить размер", "Введите ширину и высоту",
|
||||||
|
initialValue: $"{_selectedNode.Size.Width} x {_selectedNode.Size.Height}",
|
||||||
|
keyboard: Keyboard.Numeric);
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(result)) return;
|
||||||
|
|
||||||
|
// Разбиваем введенное значение на ширину и высоту
|
||||||
|
var dimensions = result.Split('x');
|
||||||
|
if (dimensions.Length == 2 &&
|
||||||
|
double.TryParse(dimensions[0].Trim(), out double width) &&
|
||||||
|
double.TryParse(dimensions[1].Trim(), out double height))
|
||||||
|
{
|
||||||
|
// Обновляем размеры ноды
|
||||||
|
_selectedNode.Size = new Size(width, height);
|
||||||
|
canvasView.Invalidate(); // Перерисовываем канву
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await DisplayAlert("Ошибка", "Неверный формат. Введите значения в формате ширина x высота.", "OK");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private async void OnAddNodeClicked(object sender, EventArgs e)
|
private async void OnAddNodeClicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
var newNode = new GraphNode
|
var newNode = new GraphNode
|
||||||
{
|
{
|
||||||
Text = "Íîâàÿ íîäà",
|
Text = "Новая нода",
|
||||||
Position = new Point(300, 200),
|
Position = new Point(100, 200),
|
||||||
Size = new Size(200, 200),
|
Size = new Size(100, 50),
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue