Как можно создать сообщение для пользователя, когда он пытается закрыть окно, установив WindowsStyle на None и предотвратив его закрытие, чтобы уведомить пользователя о недоступности этой функции?
Для предотвращения закрытия окна при нажатии на кнопку закрытия (крестик) в WPF с использованием C# можно перехватить событие Closing окна и отменить его действие. Вот пример кода:
```c#
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
MessageBox.Show("Недоступная операция. Для закрытия окна используйте другие доступные способы.");
e.Cancel = true;
}
```
Чтобы создать сообщение для пользователя при попытке закрыть окно с установленным WindowsStyle на None, можно использовать тот же подход - перехватить событие Closing окна и отменить его действие. Вот пример кода:
```c#
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if (this.WindowStyle == WindowStyle.None)
{
MessageBox.Show("Недоступная операция. Для закрытия окна используйте другие доступные способы.");
e.Cancel = true;
}
}
```
Таким образом, при попытке закрыть окно с установленным WindowsStyle на None, пользователь увидит сообщение о недоступности этой функции и окно не будет закрыто.
Просто не делай крестик - так не пойдет? <br/> <br/> Можно так - я не претендую на профессионализм - сам не много ковырял. <br/> <br/> Делаешь в MainWindow.xaml <br/> <br/> <pre><code><Window>
<Border Background="#FF464B5F" CornerRadius="35">
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid Grid.Row="0" MouseDown="Grid_MouseDown" Background="Transparent"> // это будет "шапка" окна. за нее можно будет перетаскивать окно.
</Grid>
<Grid Grid.Row="1">
</Grid>
</Grid>
</Grid>
</Border>
</Window></code></pre> <br/> <br/> В файле MainWindow.xaml.cs делаешь <br/> <br/> <pre><code>private void Grid_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
{
this.DragMove();
}
}</code></pre> <br/> <br/> Ну из-за WindowsStyle = None у тебя нет ни крестика, не свернуть окно - поэтому решаешь сам - нарисовать иконку крестик и при нажатии выводить что хочешь
RTFM: <a href="https://learn.microsoft.com/en-us/dotnet/api/system.windows.window.closing?view=windowsdesktop-8.0" rel="nofollow">System.Windows > Window Events > Window.Closing</a>