JustJoe_066
@JustJoe_066

Каким образом в WPF С# можно сделать так, чтобы кнопка закрытия (крестик) не закрывала окно?

Пусть есть задача, чтобы при нажатии на крестик (WindowsStyle = None - работает плохо, т.к. нельзя перемещать окно по экрану) пользователю вместо закрытия этого окна выдавало например сообщение, что крестик не работает или вовсе не реагировала на нажатия?
  • Вопрос задан
  • 142 просмотра
Решения вопроса 2
AmanitaRubescens
@AmanitaRubescens
Шалтай-болтай
Просто не делай крестик - так не пойдет?

Можно так - я не претендую на профессионализм - сам не много ковырял.

Делаешь в MainWindow.xaml

<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>


В файле MainWindow.xaml.cs делаешь

private void Grid_MouseDown(object sender, MouseButtonEventArgs e)
{
    if (e.ChangedButton == MouseButton.Left)
    {
        this.DragMove();
    }
}


Ну из-за WindowsStyle = None у тебя нет ни крестика, не свернуть окно - поэтому решаешь сам - нарисовать иконку крестик и при нажатии выводить что хочешь
Ответ написан
Комментировать
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы