Упрощен?Нет. Но все, что вы можете сделать в XAML, вы можете просто сделать в коде.Например, вот простое приложение для рисования Windows Ink - настолько простое, насколько вы могли бы его сделать:
![who needs visual studio? green ink on purple background](https://i.stack.imgur.com/f7zgw.png)
Без сохранения, без изменения чего-либо -но вы можете через код.
Sketchpad.cs
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Ink;
public class Sketchpad : Application {
[STAThread]
public static void Main(){
var app = new Sketchpad();
Window root = new Window();
InkCanvas inkCanvas1 = new InkCanvas();
root.Title = "Skortchpard";
root.ResizeMode = ResizeMode.CanResizeWithGrip;
inkCanvas1.Background = Brushes.DarkSlateBlue;
inkCanvas1.DefaultDrawingAttributes.Color = Colors.SpringGreen;
inkCanvas1.DefaultDrawingAttributes.Height = 10;
inkCanvas1.DefaultDrawingAttributes.Width = 10;
root.Content = inkCanvas1;
root.Show();
app.MainWindow = root;
app.Run();
}
}
Sketchpad.csproj
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0">
<PropertyGroup>
<AssemblyName>Simply Sketch</AssemblyName>
<OutputPath>Bin\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<Compile Include="SketchPad.cs" />
</ItemGroup>
<Target Name="Build" Inputs="@(Compile)" Outputs="$(OutputPath)$(AssemblyName).exe">
<MakeDir Directories="$(OutputPath)" Condition="!Exists('$(OutputPath)')" />
<Csc Sources="@(Compile)" OutputAssembly="$(OutputPath)$(AssemblyName).exe" />
</Target>
<Target Name="Clean">
<Delete Files="$(OutputPath)$(AssemblyName).exe" />
</Target>
<Target Name="Rebuild" DependsOnTargets="Clean;Build" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
Это все, что нужно.Конечно, если вы хотите избежать XAML, это в основном означает, что вам придется писать кучу альтернативного кода .NET, так что это зависит от вас - хотите ли вы сбросить этот материал в XAML, или вылучше написать это в коде?
Я думаю, что самое большое преимущество в VS - это хорошая поддержка дизайнера, так что обычно довольно легко визуально увидеть, где все находится и куда идет.Также, вероятно, меньше нужно искать документацию и иногда приходится делать несколько прыжков.
Но возможен WPF без XAML .
Вам даже не нужна Visual Studioдля этого установлены только .NET CLI и командная строка разработчика.Перетащите эти два файла в папку и запустите msbuild
, а затем вы сможете запустить файл в каталоге Bin
.