РЕДАКТИРОВАТЬ: я снова протестировал другое диалоговое окно, и он, кажется, показывает ту же проблему, что и диалоговое окно, упомянутое выше.
РЕДАКТИРОВАТЬ 2: После дополнительного тестирования это кажется проблемой Фокуса.Когда появляется диалоговое окно, оно не отвечает.Однако, если я щелкаю в другом окне или экране, а затем нажимаю назад, элементы управления работают должным образом.
У меня есть UserControl, который должен использоваться в качестве диалога в DialogHost (из MaterialDesignInXAML Toolkit).Когда я вызываю DialogHost.Show в диалоговом окне, оно всплывает, но элементы управления внутри (т. Е. Некоторые текстовые поля, некоторые списки и кнопка) фактически ничего не делают.Они воспроизводят любые связанные с ними анимации, но, например, в текстовых полях, я не могу их ввести.
Я заметил, что когда я добавляю точку останова при отладке перед вызовом .Show (), он работает как положено.Я могу ввести текстовые поля, я могу щелкнуть элементы в представлениях списка и т. Д. Я также попытался переместить свои вызовы, но это все еще кажется проблемой.
ThreeSixtyPackageDialog.xaml
<UserControl x:Class="MultiCapture2._0.Views.ThreeSixtyPackageDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:MultiCapture2._0.Views"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
mc:Ignorable="d"
MinWidth="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Background="{StaticResource DvsportBlackHeaderFooter}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Name="TitleTextBlock" Text="360 Package Information" Foreground="{StaticResource DvsportLightText}" Padding="10"
HorizontalAlignment="Left"></TextBlock>
<Button Grid.Column="1" Name="CloseButton" Content="{materialDesign:PackIcon Close}" Command="materialDesign:DialogHost.CloseDialogCommand"
Foreground="{StaticResource DvsportLightText}" Background="Transparent" BorderThickness="0" materialDesign:ShadowAssist.ShadowDepth="Depth0"></Button>
</Grid>
<StackPanel Grid.Row="1" Background="{StaticResource DvsportBlackBackground}">
<TextBox Name="FromTextBox" materialDesign:HintAssist.Hint="From" Padding="10 0 0 0" Foreground="{StaticResource DvsportLightText}" Style="{StaticResource MaterialDesignFloatingHintTextBox}"></TextBox>
<TextBox Name="MessageTextBox" materialDesign:HintAssist.Hint="Message" Padding="10 0 0 0" Foreground="{StaticResource DvsportLightText}" Style="{StaticResource MaterialDesignFloatingHintTextBox}"></TextBox>
<TextBox Name="PathTextBox" materialDesign:HintAssist.Hint="Path" Text="/MULTICAPTURE" CharacterCasing="Upper" Padding="10 0 0 0" Foreground="{StaticResource DvsportLightText}" Style="{StaticResource MaterialDesignFloatingHintTextBox}"></TextBox>
</StackPanel>
<Button Grid.Row="2" Height="40" Foreground="{StaticResource DvsportBlackBackground}" Background="{StaticResource DvsportGold}" BorderBrush="{StaticResource DvsportBlackBackground}" BorderThickness="0" Click="SaveButton_OnClick" Content="Save"/>
</Grid>
</UserControl>
ThreeSixtyPackageDialog.xaml.cs
public partial class ThreeSixtyPackageDialog : UserControl
{
public ThreeSixtyPackageDialog()
{
InitializeComponent();
}
private void SaveButton_OnClick(object sender, RoutedEventArgs e)
{
DialogHost.CloseDialogCommand.Execute(null, null);
}
}
MonitorUserControl.Events.xaml.cs (где отображается диалоговое окно
...
packageFileUtil.CreatePackageFile(result.Payload, input.InputNum, pendingScheduleToStop);
if (pendingScheduleToStop == null)
{
var threeSixtyPkgDialog = new ThreeSixtyPackageDialog();
await DialogHost.Show(threeSixtyPkgDialog, "
}
...
У меня есть еще одно диалоговое окно, которое я вызвал с того же места, и оно загружается, как и ожидалось, и я могу щелкнуть и ввести, как и ожидалось. Поэтому я не могу найти причинупочему этот диалог будет нарушен.