Я только начал изучать Avalonia, и я работаю над проектом, где пользователь может создавать диаграммы с разъемами и формами (прямоугольники, эллипсы ....). < /p>
Я решил создать базовый класс формы и, на данный момент, 2 полученных Rectanglemodel и Ellipsemodel. Эти модели в настоящее время пусты.
Важными здесь являются соответствующие виды, которые обладают всеми свойствами, необходимыми для отображения форм в XAML: < /p>
public partial class ShapeViewModel : ObservableObject {
readonly ShapeModel shapeModel;
[ObservableProperty]
private int x;
[ObservableProperty]
private int y;
[ObservableProperty]
private int width;
[ObservableProperty]
private int height;
[ObservableProperty]
private Brush fill;
public Type ShapeType { get => shapeModel.GetType(); }
public ShapeViewModel(ShapeModel shapeModel, int x, int y, int width, int height, Brush fill) {
this.shapeModel = shapeModel;
X = x;
Y = y;
Width = width;
Height = height;
Fill = fill;
}
}
< /code>
Shapemodel, опять же, бесполезен на данный момент как свойство Shapetype.public partial class RectangleViewModel : ShapeViewModel {
public RectangleViewModel(ShapeModel shapeModel, int x, int y, int width, int height, Brush fill) : base(shapeModel, x, y, width, height, fill) { }
}
< /code>
Я создаю «DrawingsView» и «DrawingsViewModel»: < /p>
public partial class DrawingsViewModel : ObservableObject {
[ObservableProperty]
private ObservableCollection shapes;
public DrawingsViewModel() {
Shapes = new ObservableCollection(); //just for testing
Shapes.Add(new RectangleViewModel(new RectangleModel(), 100, 100, 200, 200, new SolidColorBrush(Colors.Beige)));
Shapes.Add(new EllipseViewModel(new EllipseModel(), 200, 200, 200, 200, new SolidColorBrush(Colors.Blue)));
}
[RelayCommand]
public void AddShape(ShapeViewModel shape) {
Shapes.Add(shape);
}
}
< /code>
Чтобы дифференцировать объекты в коллекции форм виртуальной машины, я создал следующие шаблоны в app.axaml: < /p>
< /code>
Формы действительно правильно дифференцированы и окрашены, а визуальное дерево для форм правильно «Drawingviews -> ... -> itempresenter -> canvas -> contentpresentter -> прямоугольник (или эллипс).
Проблема в том, что я не могу установить границы смира. (0,0).
Но это не работает, так как свойства, с которыми я связываюсь, не находятся в View DataContext.
Я только начал изучать Avalonia, и я работаю над проектом, где пользователь может создавать диаграммы с разъемами и формами (прямоугольники, эллипсы ....). < /p> Я решил создать базовый класс формы и, на данный момент, 2 полученных Rectanglemodel и Ellipsemodel. Эти модели в настоящее время пусты. Важными здесь являются соответствующие виды, которые обладают всеми свойствами, необходимыми для отображения форм в XAML: < /p> [code]public partial class ShapeViewModel : ObservableObject {
readonly ShapeModel shapeModel;
[ObservableProperty] private int x;
[ObservableProperty] private int y;
[ObservableProperty] private int width;
[ObservableProperty] private int height;
[ObservableProperty] private Brush fill; public Type ShapeType { get => shapeModel.GetType(); }
public ShapeViewModel(ShapeModel shapeModel, int x, int y, int width, int height, Brush fill) { this.shapeModel = shapeModel; X = x; Y = y; Width = width; Height = height; Fill = fill; } } < /code> Shapemodel, опять же, бесполезен на данный момент как свойство Shapetype.public partial class RectangleViewModel : ShapeViewModel {
public RectangleViewModel(ShapeModel shapeModel, int x, int y, int width, int height, Brush fill) : base(shapeModel, x, y, width, height, fill) { } } < /code> Я создаю «DrawingsView» и «DrawingsViewModel»: < /p> public partial class DrawingsViewModel : ObservableObject { [ObservableProperty] private ObservableCollection shapes; public DrawingsViewModel() { Shapes = new ObservableCollection(); //just for testing Shapes.Add(new RectangleViewModel(new RectangleModel(), 100, 100, 200, 200, new SolidColorBrush(Colors.Beige)));
Shapes.Add(new EllipseViewModel(new EllipseModel(), 200, 200, 200, 200, new SolidColorBrush(Colors.Blue))); } [RelayCommand] public void AddShape(ShapeViewModel shape) { Shapes.Add(shape); } }
< /code> Чтобы дифференцировать объекты в коллекции форм виртуальной машины, я создал следующие шаблоны в app.axaml: < /p>
< /code> Формы действительно правильно дифференцированы и окрашены, а визуальное дерево для форм правильно «Drawingviews -> ... -> itempresenter -> canvas -> contentpresentter -> прямоугольник (или эллипс). Проблема в том, что я не могу установить границы смира. (0,0).
[/code] Но это не работает, так как свойства, с которыми я связываюсь, не находятся в View DataContext.
Я только начал изучать Avalonia, и я работаю над проектом, где пользователь может создавать диаграммы с разъемами и формами (прямоугольники, эллипсы ....).
Я решил создать базовый класс формы и, на данный момент, 2 полученных Rectanglemodel и...
Я только начал изучать Avalonia, и я работаю над проектом, где пользователь может создавать диаграммы с разъемами и формами (прямоугольники, эллипсы ....).
Я решил создать базовый класс формы и, на данный момент, 2 полученных Rectanglemodel и...
У меня есть приложение ASP.net Core, где пользователю разрешается добавлять несколько баз данных (скажем, ID и ConnectionString) во время выполнения. Затем приложение будет создавать и кэшировать настроенный dbcontextoptions и будет использовать его...
У меня есть устаревшее решение .NET Framework 4.8.1. Я хочу использовать Magick.NET для преобразования файлов HEIC в JPEG.
Мой проект RestApi ориентирован на .NET Framework 4.8.1, а Magick.NET поддерживает .NET Standard 2.0. Я создал новый проект...
У меня есть устаревшее решение .NET Framework 4.8.1. Я хочу использовать Magick.NET для преобразования файлов HEIC в JPEG.
Мой проект RestApi ориентирован на .NET Framework 4.8.1, а Magick.NET поддерживает .NET Standard 2.0. Я создал новый проект...