This commit is contained in:
ARCHI86 2024-11-10 23:19:41 +03:00
parent af9466c0a6
commit ad2025c52b
2 changed files with 47 additions and 14 deletions

View file

@ -1,26 +1,26 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="NotesDataAnalyst.GraphPage"
Title="GraphPage">
<ContentPage.ToolbarItems>
<ToolbarItem Text="Add Node" Clicked="OnAddNodeClicked"/>
<ToolbarItem Text="Добавить дочернюю" Clicked="OnChildClicked"/>
<ToolbarItem Text="Изменить размер" Clicked="OnResizeNodeClicked" />
</ContentPage.ToolbarItems>
<ContentPage.Content>
<AbsoluteLayout>
<GraphicsView x:Name="canvasView"
HeightRequest="800"
WidthRequest="800" />
<!-- Поле для редактирования текста -->
<Entry x:Name="textEditor"
IsVisible="False"
BackgroundColor="White"
TextColor="Black"
FontSize="18" />
<GraphicsView x:Name="canvasView"
HeightRequest="800"
WidthRequest="800" />
<!-- Поле для редактирования текста -->
<Entry x:Name="textEditor"
IsVisible="False"
BackgroundColor="White"
TextColor="Black"
FontSize="18" />
</AbsoluteLayout>
</ContentPage.Content>
</ContentPage>
</ContentPage>

View file

@ -29,14 +29,47 @@ namespace NotesDataAnalyst
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)
{
var newNode = new GraphNode
{
Text = "Íîâàÿ íîäà",
Position = new Point(300, 200),
Size = new Size(200, 200),
Text = "Новая нода",
Position = new Point(100, 200),
Size = new Size(100, 50),
};