private void BtnToggleLogger_Click(object sender, RoutedEventArgs e)
{
if (LoggerOverlay.Visibility == Visibility.Collapsed)
{
LoggerOverlay.Visibility = Visibility.Visible;
// FIX: hide WebView2 so overlay can appear above everything
MapContainer.Visibility = Visibility.Hidden;
MapView.IsHitTestVisible = false;
}
else
{
LoggerOverlay.Visibility = Visibility.Collapsed;
MapContainer.Visibility = Visibility.Visible;
MapView.IsHitTestVisible = true;
}
}
но это не решение, потому что я хочу показать карту.
Итак, первая проблема заключается в том, как показать окно журнала журнала перед картой?
Вторая проблема заключается в том, что я хочу, чтобы окно журнала журнала было интерактивным, чтобы я мог прокручивать вниз с помощью колеса мыши или использовать полосу прокрутки в окне журнала, а также иметь возможность взаимодействовать с кнопкой на правой стороне панели.
вот почему установите фон окна регистратора становится прозрачным:
Background="Transparent"
а также установите для IsHitTestVisible значение false
IsHitTestVisible="False">
как только я установлю значение false, я смогу взаимодействовать с кнопками справа, но тогда я не смогу взаимодействовать с окном журнала, только видеть окно журнала в виде текста, и если я установлю его в значение True, я могу взаимодействовать с окном журнала, но не с кнопками справа.
скриншот приложения, когда окно журнала журнала выключено:

и когда окно регистратора на карте не видно, и я не могу взаимодействовать с ним.

это Код mainwindow.xaml окна журнала.
и код в файле mainwindow.xaml.cs
private void Log(string msg)
{
string timestamp = DateTime.Now.ToString("HH:mm:ss");
string logEntry = $"[{timestamp}] {msg}";
// Add to UI
TxtLogger.AppendText(logEntry + "\n");
// Auto-scroll to bottom ONLY if user hasn't manually scrolled up
if (!_userScrolled)
{
LogScrollViewer.ScrollToEnd();
}
// Add to buffer
_logBuffer.Add(logEntry);
// Save to file immediately (real-time logging)
try
{
if (_logFilePath != null)
{
File.AppendAllText(_logFilePath, logEntry + Environment.NewLine);
}
}
catch (Exception ex)
{
// If file write fails, show in UI only
TxtLogger.AppendText($"[{timestamp}] ⚠ Log file write failed: {ex.Message}\n");
}
}
// Toggle logger visibility
private void BtnToggleLogger_Click(object sender, RoutedEventArgs e)
{
if (LoggerOverlay.Visibility == Visibility.Collapsed)
{
LoggerOverlay.Visibility = Visibility.Visible;
}
else
{
LoggerOverlay.Visibility = Visibility.Collapsed;
}
}
// Close logger when clicking outside the panel
private void LoggerOverlay_MouseDown(object sender, MouseButtonEventArgs e)
{
LoggerOverlay.Visibility = Visibility.Collapsed;
}
// Enable mouse wheel scrolling
private void LogScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
var scrollViewer = sender as ScrollViewer;
if (scrollViewer == null) return;
// Mark that user manually scrolled
_userScrolled = true;
// Scroll the viewer
if (e.Delta > 0)
{
scrollViewer.LineUp();
scrollViewer.LineUp();
scrollViewer.LineUp();
}
else
{
scrollViewer.LineDown();
scrollViewer.LineDown();
scrollViewer.LineDown();
}
// Check if user scrolled back to bottom
if (scrollViewer.VerticalOffset >= scrollViewer.ScrollableHeight - 1)
{
_userScrolled = false; // Re-enable auto-scroll
}
e.Handled = true;
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... map-behind
Мобильная версия