Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
WPF

Шаблон окна xaml

20.07.2023, 08:42. Показов 1089. Ответов 19

Author24 — интернет-сервис помощи студентам
XML Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
    <Window.Resources>
        <cmd:ApplicationShutdownCommand x:Key="AppExit"/>
    </Window.Resources>
 
    <Window.InputBindings>
        <KeyBinding Modifiers="Ctrl" Key="Q" Command="{StaticResource AppExit}"/>
    </Window.InputBindings>
 
    <Window.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Выход" Command="{StaticResource AppExit}"/>
        </ContextMenu>
    </Window.ContextMenu>
Как Resources, InputBindings, ContextMenu (код выше) в шаблоне окна прописать (код ниже)?
Кликните здесь для просмотра всего текста
XML Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
    <SolidColorBrush x:Key="BackgroundColor" Color="Wheat"/>
    <SolidColorBrush x:Key="ForegroundColor" Color="Black"/>
 
    <ControlTemplate
        x:Key="WindowTemplate"
        TargetType="{x:Type Window}">
 
        <Border 
            Background="{TemplateBinding Background}" 
            BorderBrush="{TemplateBinding BorderBrush}" 
            BorderThickness="{TemplateBinding BorderThickness}"
            >
 
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
 
                <ContentPresenter 
                    Grid.Row="1" 
                    Content="{TemplateBinding Content}" 
                    ContentTemplate="{TemplateBinding ContentTemplate}"
                />
 
                <ResizeGrip
                    x:Name="WindowResizeGrip"
                    Visibility="Collapsed"
                    Grid.Row="2"
                    HorizontalAlignment="Right"
                    VerticalAlignment="Bottom"
                    IsTabStop="False"
                />
 
                <TextBlock Text="{TemplateBinding Title}" Margin="2"/>
            </Grid>
        </Border>
 
        <ControlTemplate.Triggers>
            <MultiTrigger>
                <MultiTrigger.Conditions>
                    <Condition Property="ResizeMode" Value="CanResizeWithGrip"/>
                    <Condition Property="WindowState" Value="Normal"/>
                </MultiTrigger.Conditions>
                <Setter Property="Visibility" TargetName="WindowResizeGrip" Value="Visible"/>
            </MultiTrigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>
 
    <Style x:Key="WindowStyle" TargetType="Window">
        <Setter Property="WindowStyle" Value="None" />
        <Setter Property="AllowsTransparency" Value="True" />
        <Setter Property="Background" Value="{StaticResource BackgroundColor}" />
        <Setter Property="Opacity" Value="0.8" />
        <Setter Property="ResizeMode" Value="CanResizeWithGrip" />
        <Setter Property="Template" Value="{StaticResource WindowTemplate}" />
 
        <Style.Triggers>
            <DataTrigger
                Binding="{Binding WindowState}"
                Value="Maximized">
            </DataTrigger>
        </Style.Triggers>
    </Style>
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.07.2023, 08:42
Ответы с готовыми решениями:

Шаблон в XAML
При создании шаблона на xaml, столкнулся с такой проблемой: есть DataGrid, в нём несколько колонок, хочу сделать, чтобы названия колонок...

Доступ в xaml шаблон из кода
Всем привет, подскажите как получить элемент textbox из шаблона datatemplate в codebehinde, или дайте ссылку где почитать. Собственно к...

События в XAML и конструкторе окна
Вопрос общего характера: допустим у меня есть элемент в XML например вот такой: &lt;Viewbox Grid.Column=&quot;1&quot;...

19
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15973 / 11106 / 2867
Регистрация: 21.04.2018
Сообщений: 32,649
Записей в блоге: 2
20.07.2023, 09:12
Лучший ответ Сообщение было отмечено iNNOKENTIY21 как решение

Решение

Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
Как Resources .... в шаблоне окна прописать (код ниже)?
Ресурсы в:
XML Скопировано
1
2
3
      <ControlTemplate.Resources>
          <cmd:ApplicationShutdownCommand x:Key="AppExit"/>
      </ControlTemplate.Resources>
Или в ресурсах Главного элемента шаблона:
XML Скопировано
1
2
3
4
5
6
7
        <Border 
            Background="{TemplateBinding Background}" 
            BorderBrush="{TemplateBinding BorderBrush}" 
            BorderThickness="{TemplateBinding BorderThickness}">
            <Border.Resources>
                <cmd:ApplicationShutdownCommand x:Key="AppExit"/>
            </Border.Resources>
Но я не уверен, что для экземпляра команды это хорошее решение. Даже более, я почти на 100% уверен, что это плохое решение.
Экземпляры команд, не являющиеся свойствами других объектов, следует реализовывать как Синглтон.
Пример - все дефолтные системные команды Библиотека команд | ProfessorWeb, C# и WPF | Команды - Metanit.

При создании в Шаблоне - экземпляр команды может пересоздаваться для каждого элемента использующего Шаблон.
Что "не есть хорошо".

Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
Как ... InputBindings .... в шаблоне окна прописать (код ниже)?
В главном элементе Шаблона по примеру выше.

Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
Как ... ContextMenu (код выше) в шаблоне окна прописать (код ниже)?
Это обычное свойство. Можно в главном элементе Шаблона, можно в сеттерах. Можно предварительно создать экземпляр в ресурсах стиля:
XML Скопировано
1
2
3
4
5
6
7
    <Style x:Key="WindowStyle" TargetType="Window">
        <Style.Resources>
            <ContextMenu x:Key="cMenu">
                <MenuItem Header="Выход" Command="{x:Static cmd:CommandHelper.ApplicationShutdown}"/>
            </ContextMenu>
        </Style.Resources>
        <Setter Property="ContextMenu" Value="{StaticResource cMenu}" />
Добавлено через 2 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
cmd:CommandHelper.ApplicationShutdown
Имеется ввиду, что вместо экземпляров команд, создан поставщик команд со статическими свойствами-командами.
1
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
20.07.2023, 11:07  [ТС]
Элд Хасп, так не работает
XML Скопировано
1
2
3
<ControlTemplate.Resources>
    <cmd:ApplicationShutdownCommand x:Key="AppExit"/>
</ControlTemplate.Resources>
и
XML Скопировано
1
2
3
<Border.InputBindings>
    <KeyBinding Modifiers="Ctrl" Key="Q" Command="{StaticResource AppExit}"/>
</Border.InputBindings>
System.Windows.Markup.XamlParseException : ""Нельзя создать неизвестный тип "{clr-namespace:Widgets.Commands}ApplicationSh utdownCommand"."
указывает на эту строчку: <cmd:ApplicationShutdownCommand x:Key="AppExit"/>

А cmd:CommandHelper.ApplicationShutdown я не умею CommandHelper.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15973 / 11106 / 2867
Регистрация: 21.04.2018
Сообщений: 32,649
Записей в блоге: 2
20.07.2023, 11:59
iNNOKENTIY21, полный XAML дайте. Здесь важна компоновка, так от неё зависят зоны видимости ресурсов имён..

Добавлено через 1 минуту
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
"Нельзя создать неизвестный тип "{
Скорее всего неправильно задан префикс пространства имён.

Добавлено через 54 секунды
iNNOKENTIY21, лучше будет, если зальёте решение в новый репозиторий на GitHub и дадите ссылку на него.
0
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
20.07.2023, 13:06  [ТС]
Элд Хасп, сработало контекстное меню, а вот сочетание клавиш не срабатывает как будто и не задавали, ошибок нет.

Ту ошибку «Нельзя создать неизвестный тип» выдаёт, если свойства generic.xaml: действия при сборке Содержание и Копировать при сборке всегда.
А стиль окна в generic.xaml.
0
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
20.07.2023, 13:22  [ТС]
p.s.
Вложения
Тип файла: zip Test_WindowTemplate.zip (11.0 Кб, 9 просмотров)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15973 / 11106 / 2867
Регистрация: 21.04.2018
Сообщений: 32,649
Записей в блоге: 2
20.07.2023, 23:19
iNNOKENTIY21, на будущее - показывайте РЕШЕНИЕ, а не проект.

Добавлено через 6 минут
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
C# Скопировано
6
7
8
9
10
11
12
13
14
15
    public abstract class BaseCommand : ICommand
    {
        public event EventHandler CanExecuteChanged;
 
        public virtual bool CanExecute(object parameter) => true;
 
        public abstract void Execute(object parameter);
 
        protected void OnCanExecuteChanged() => CanExecuteChanged?.Invoke(this, new EventArgs());
    }
Это АБСОЛЮТНО бессмысленный класс.
Возьмите базовый класс команд отсюда: Простые реализации для тем на форуме

Добавлено через 13 минут
Нормальная реализация команды выхода из приложения:
C# Скопировано
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
namespace Test_WindowTemplate.Commands
{
    public static class CommandsHelper
    {
        public static RelayCommand ApplicationShutdownCommand { get; } = new RelayCommand(Application.Current.Shutdown);
    }
 
    [MarkupExtensionReturnType(typeof(RelayCommand))]
    public class ApplicationShutdownCommandExtension : MarkupExtension
    {
        public override object ProvideValue(IServiceProvider serviceProvider)
        {
            return CommandsHelper.ApplicationShutdownCommand;
        }
    }
}
Использование:
XML Скопировано
24
                <KeyBinding Modifiers="Ctrl" Key="Q" Command="{cmd:ApplicationShutdownCommand}"/>
Добавлено через 35 минут
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
а вот сочетание клавиш не срабатывает как будто и не задавали, ошибок нет.
Ну, так у вас в Окне нет ни одного элемента принимающего клавиатурный фокус.
Замените TextBlock на TextBox и всё будет нормально работать.

Добавлено через 14 минут
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
А стиль окна в generic.xaml.
Generic - это словарь для дефолтных стилей Custom Control объявленных в той же сборке. Использовать его для элементов из других сборок не стоит.
Лучше замените его на XamlResources/DefaultStyles.xaml и подключите в App:
XML Скопировано
1
2
3
4
5
6
7
8
9
<Application x:Class="TestWindowTemplateCore.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:TestWindowTemplateCore"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary Source="/XamlResources/DefaultStyles.xaml"/>
    </Application.Resources>
</Application>
1
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
21.07.2023, 02:24  [ТС]
Элд Хасп, спасибо. Я конечно напакосткопипастил и оно работает, но не уловил, чем бесполезен был BaseCommand в контексте данной темы, он работал

Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ну, так у вас в Окне нет ни одного элемента принимающего клавиатурный фокус.
Замените TextBlock на TextBox и всё будет нормально работать.
Ну, так мне их и не надо, фокусы. С окном Window.InputBindings работает.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15973 / 11106 / 2867
Регистрация: 21.04.2018
Сообщений: 32,649
Записей в блоге: 2
21.07.2023, 12:00
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
чем бесполезен был BaseCommand в контексте данной темы, он работал
Потому что в такой реализации вам нужно вместо ЭКЗЕМПЛЯРОВ команд, сначала создать НОВЫЙ ТИП команды, а потом уже её экземпляр.

Команда - преимущественно используется в свойствах VM. И с вашей реализацией придётся для каждого свойства, создавать новый тип команды.
Что касается уровня View, то на нём преимущественно используются RoutedCommand. Обычные команды (которые сразу исполняются), конечно, тоже можно использовать, но это как-то реже бывает. Чаще в View для действий используют кликеры.

Добавлено через 2 минуты
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
С окном Window.InputBindings работает.
Да. Будет работать, так как когда нет фокуса на дочернем элементе, фокус установлен на само Окно.
С Шаблоном это не сработает.

Добавлено через 5 минут
Можно попробовать передать фокус в на Border - не могу сказать сработает это или нет.
У меня нет сейчас (на работе) компа со Студией - проверьте сами.

XML Скопировано
1
2
3
4
5
        <Border 
            Background="{TemplateBinding Background}" 
            BorderBrush="{TemplateBinding BorderBrush}" 
            BorderThickness="{TemplateBinding BorderThickness}"
            FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}">
Добавлено через 8 минут
iNNOKENTIY21, задать в шаблоне InputBindings самому элементу невозможно.
Если ОЧЕНЬ хочется, то придётся для этого создать AP-свойство.
Вечером, если не забуду, покажу как это делается.
0
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
21.07.2023, 12:41  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
проверьте сами
не работает.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Если ОЧЕНЬ хочется
Первое пришло в голову — в шаблоне, в одном месте, что бы для всех окон срабатывало.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15973 / 11106 / 2867
Регистрация: 21.04.2018
Сообщений: 32,649
Записей в блоге: 2
21.07.2023, 14:07
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
что бы для всех окон срабатывало
"Автоматом" - не выйдет.
Окна подхватывают стиль из темы который задан в сборке с Окнами.
В любом случае придётся как-то устанавливать ваш стиль во все открываемые окна.
Так же вы используете Framework, а актуальная сейчас платформа это .Net6+ (Core).
И эти аспекты могут по разному для них работать. Например, ресурсы Generic.xaml в Core будут, вообще, недоступны. Вы не сможете их вытащить через StatiResource. В том числе, поэтому я предложил вам вариант явной установки в App.Resources. Это типовой для WPF подход.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15973 / 11106 / 2867
Регистрация: 21.04.2018
Сообщений: 32,649
Записей в блоге: 2
21.07.2023, 20:56
iNNOKENTIY21, пример реализации AP-свойства для привязки команды к Ctrl-Q:
C# Скопировано
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    public static class CommandsHelper
    {
        public static RelayCommand ApplicationShutdownCommand { get; } = new RelayCommand(Application.Current.Shutdown);
 
        public static ICommand GetCtrlQCommand(DependencyObject obj)
        {
            return (ICommand)obj.GetValue(CtrlQCommandProperty);
        }
 
        public static void SetCtrlQCommand(DependencyObject obj, ICommand value)
        {
            obj.SetValue(CtrlQCommandProperty, value);
        }
 
        // Using a DependencyProperty as the backing store for ApplicationShutdownInput.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty CtrlQCommandProperty =
            DependencyProperty.RegisterAttached(nameof(GetCtrlQCommand)[3..], typeof(ICommand), typeof(CommandsHelper), new PropertyMetadata(null, OnCtrlQCommandChanged));
 
        private static void OnCtrlQCommandChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            if(d is not UIElement elm)
            {
                throw new NotImplementedException("Реализовано только для UIElement.");
            }
            if(e.NewValue is ICommand command)
            {
                elm.InputBindings.Add(new KeyBinding(command, Key.Q, ModifierKeys.Control));
            }
        }
    }
Использование:
XML Скопировано
65
66
67
68
69
70
71
72
    <Style TargetType="Window">
        <Setter Property="WindowStyle" Value="None" />
        <Setter Property="AllowsTransparency" Value="True" />
        <Setter Property="Background" Value="{StaticResource BackgroundColor}" />
        <Setter Property="Opacity" Value="0.8" />
        <Setter Property="ResizeMode" Value="CanResizeWithGrip" />
        <Setter Property="Template" Value="{StaticResource WindowTemplate.Generic}" />
        <Setter Property="cmd:CommandsHelper.CtrlQCommand" Value="{cmd:ApplicationShutdownCommand}"/>
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15973 / 11106 / 2867
Регистрация: 21.04.2018
Сообщений: 32,649
Записей в блоге: 2
21.07.2023, 20:58
Принудительное применение стиля по умолчанию ко всем Окнам:
C# Скопировано
14
15
16
17
18
19
20
21
22
23
24
25
    public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
 
            FrameworkElement.StyleProperty.OverrideMetadata(typeof(Window), new FrameworkPropertyMetadata
            {
                DefaultValue = Application.Current.FindResource(typeof(Window))
            });
        }
    }
Архив с исходниками: TestWindowTemplateCore.7z
1
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
21.07.2023, 23:45  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
пример реализации AP-свойства для привязки команды к Ctrl-Q:
Для меня, как магия. А, что за магическое число [3..]? Требует C# 9.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15973 / 11106 / 2867
Регистрация: 21.04.2018
Сообщений: 32,649
Записей в блоге: 2
21.07.2023, 23:53
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
А, что за магическое число [3..]?
Замена Substring(3)

Добавлено через 38 секунд
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
Требует C# 9.
Переходите на .Net 6

Добавлено через 4 минуты
По соглашению методы AP-свойства должны быть составлены из префикса Get/Set и имени свойства.
Я для уменьшения случайных ошибок получаю имя свойства из имени метода отсечением префикса.
0
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
22.07.2023, 00:44  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Замена Substring(3)
ну, т.е. "CtrlQCommand"

AP-свойства, как то плохо гуглится, может есть другие термины, инглиш?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15973 / 11106 / 2867
Регистрация: 21.04.2018
Сообщений: 32,649
Записей в блоге: 2
22.07.2023, 00:50
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
AP-свойства, как то плохо гуглится, может есть другие термины, инглиш?
Attached Property

Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
ну, т.е. "CtrlQCommand"
Да.
0
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
22.07.2023, 00:51  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Переходите на .Net 6
да и тут не плохо.
завелась
(GetCtrlQCommand)[3..] на "CtrlQCommand"
d is not UIElement elm на !(d is UIElement elm)
Спасибо
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
15973 / 11106 / 2867
Регистрация: 21.04.2018
Сообщений: 32,649
Записей в блоге: 2
22.07.2023, 00:54
Общие сведения о присоединенных свойствах - WPF .NET

Добавлено через 58 секунд
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
да и тут не плохо.
Плохо.
Это уже "умирающая" платформа.
Учитесь на актуальной.
0
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
15.10.2023, 01:27  [ТС]
Прикрутил мышь в шаблон, по типу:

CommandsHelper.cs
C# Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
internal class CommandsHelper
    {
        private static void ExceptionOnlyUIElement() => throw new NotImplementedException("Реализовано только для UIElement.");
 
        #region DragMoveWindowCommand
        public static RelayCommand DragMoveWindowCommand => new RelayCommand(DragMoveWindow);
 
        public static readonly DependencyProperty DragMoveWindowCommandProperty = DependencyProperty.RegisterAttached(
            nameof(DragMoveWindowCommand), typeof(ICommand), typeof(CommandsHelper), new PropertyMetadata(null, OnDragMoveWindowCommandChanged));
 
        public static ICommand GetDragMoveWindowCommand(DependencyObject obj) => (ICommand)obj.GetValue(DragMoveWindowCommandProperty);
 
        public static void SetDragMoveWindowCommand(DependencyObject obj, ICommand value) => obj.SetValue(DragMoveWindowCommandProperty, value);
 
        private static void OnDragMoveWindowCommandChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            if (!(d is UIElement))
            {
                ExceptionOnlyUIElement();
            }
 
            if (e.NewValue is ICommand command)
            {
                ((UIElement)d).InputBindings.Add(new MouseBinding(command, new MouseGesture(MouseAction.LeftClick)));
            }
        }
 
        private static void DragMoveWindow(object parameter) => (parameter as Window ?? App.FocusedWindow ?? App.ActiveWindow).DragMove();
        #endregion
}
DragMoveWindowCommandExtension.cs
C# Скопировано
1
2
3
4
5
6
7
8
    [MarkupExtensionReturnType(typeof(RelayCommand))]
    public class DragMoveWindowCommandExtension : MarkupExtension
    {
        public override object ProvideValue(IServiceProvider serviceProvider)
        {
            return CommandsHelper.DragMoveWindowCommand;
        }
    }
А с колесиком мыши (mouse whell up/down) как быть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2023, 01:27
Помогаю со студенческими работами здесь

WPF(XAML) анимация сокрытие окна
Доброго дня. Рисую окно, по нажатию на кнопку часть окна должна скрываться, оставляя нажатую кнопку на месте, а при повторном нажатии...

XAML: Поведение строк Grid при изменении размеров Окна
Привет, Решил я все таки разобраться с XAML, ибо не могу, хочется уже полностью перейти с форм на WPF. Собственно возникают нубские...

Подгрузить (и прикрепить) готовый xaml с жёсткого диска, к созданному экземпляру окна
Каким образом подгрузить (и прикрепить) готовый xaml с жёсткого диска, к созданному экземпляру окна?

Передача обьекта xaml в другой обьект xaml
есть главное окно xaml &lt;Window x:Class=&quot;test.MainWindow&quot; ...

Вызов функции из mainWindow.xaml.cs в App.xaml.cs
Добрый день. Суть в следующем: имеется WPF-приложение для чтения QR-кодов. Эти коды передаются в БД. Планируется, что приложение будет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Полностью асинхронный счётчик на логике (сумматорах) трёх состояний и асинхронных регистрах трёх состояний. Структура "электронный Buttom Up"
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер