рдПрдХ рдмрд╛рд░ рдореБрдЭреЗ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдореИрдВ wpf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкреВрд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдХрдо рдЬрд╛рдирдХрд╛рд░реА рдмрд┐рдЦрд░реА рд╣реБрдИ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рдЫреЛрдЯреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
.Net рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдПрдХ рдирд┐рдпрдорд┐рдд рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВред

рдЕрдм рдЖрдкрдХреЛ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: WindowsBase, PresentationCore, PresentationFrameworkред

рд╡рд┐рдВрдбреЛрдЬ рдХреА рдорд╛рдирдХ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА, рд╣рдорд╛рд░реА рдЦрд┐рдбрд╝рдХреА рдХреЗ рд╡рд░реНрдЧ рдХреЛ рдЬреЛрдбрд╝реЗрдВред
public class MyWindow : Window{}
[STAThread] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
рдХреНрдпреЛрдВSTAThreadAttribute рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ COM рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде Windows рд╕рдВрджреЗрд╢ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд░реНрдд рд╣реИ
рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗред [STAThread] public static void Main(string[] args){}
рдЕрдм рд╣рдорд╛рд░реА рд╡рд┐рдВрдбреЛ рдмрдирд╛рдПрдБ:
[STAThread] public static void Main(string[] args) { var win = new MyWindow { Width = 350, Height = 350}; var grid = new Grid(); var text = new TextBox {Text = "my text"}; grid.Children.Add(text); win.Content = grid; }
рдпрджрд┐ рд╣рдо рдЕрдм рд╡рд┐рдВрдбреЛ рдкрд░ рд╢реЛ () рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рддреБрд░рдВрдд рд╣реА рдзреНрд╡рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдо рдЗрд╕реЗ рд╣рд░ рд╕рдордп рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдзрдХреЗрд▓рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдкреВрд░реЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
app.MainWindow = win; app.MainWindow.Show(); app.Run();
рд╣рдордиреЗ рдПрдХ рд╡рд┐рдВрдбреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рд╣реИ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХреЛрдб рд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ: рд░рди () рд╡рд┐рдзрд┐ рдПрдХ рдЕрдВрддрд╣реАрди рд▓реВрдк рд╣реИ, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕реА рдереНрд░реЗрдб рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрддреНрдкрд╛рджрди:
Task.Run(async () => { await Task.Delay(1000); app.Dispatcher.Invoke((Action) delegate { app.Shutdown(); }); }); ;
рддрдм рдкреВрд░реА рд╡рд┐рдзрд┐ рджрд┐рдЦрддреА рд╣реИ
рдЗрд╕рд▓рд┐рдПред [STAThread] public static void Main(string[] args) { var app = new Application(); var win = new MyWindow { Width = 350, Height = 350}; var grid = new Grid(); var text = new TextBox {Text = "my text"}; grid.Children.Add(text); win.Content = grid; app.MainWindow = win; app.MainWindow.Show(); Task.Run(async () => { await Task.Delay(1000); app.Dispatcher.Invoke((Action) delegate { app.Shutdown(); }); }); app.Run(); }
рдФрд░ рдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рд╣реИ рдПрдХ рд╕реБрдЦрдж рд╕рдорд╛рдзрд╛рди рд╣рдорд╛рд░реА рдЦрд┐рдбрд╝рдХреА рдХреЛ рдХреЛрдб рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд xaml рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд░реНрднрд░рддрд╛ System.Xml рдЬреЛрдбрд╝реЗрдВред
рдФрд░ рдПрдХ xaml рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдПрдВред
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:ConsoleApplication1" mc:Ignorable="d" Title="MyWindow" Height="450" Width="800"> <Grid> <Label Content="Label" /> </Grid> </Window>
рдЕрдм рдлрд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░реЗрдВред
XmlTextReader r = new XmlTextReader("MyWin.xaml"); var win = XamlReader.Load(r) as Window;
рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдВрддрд┐рдо рдореБрдЦреНрдп рджрд┐рдЦрддрд╛ рд╣реИ
рдЗрд╕рд▓рд┐рдПред [STAThread] public static void Main(string[] args) { var app = new Application(); XmlTextReader r = new XmlTextReader("MyWin.xaml"); var win = XamlReader.Load(r) as Window; app.MainWindow = win; app.MainWindow.Show(); Task.Run(async () => { await Task.Delay(1000); app.Dispatcher.Invoke((Action) delegate { app.Shutdown(); }); }); app.Run(); }
рдкреБрдирд╢реНрдЪ
Tg рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
рдпреВрд░реА рдореЗрдВ # рдЪреИрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред