#c# #wpf #.net-6.0 #inputscope
#c# #wpf #.net-6.0 #область ввода
Вопрос:
У меня есть диалоговое окно с текстовым полем, мне нужно, чтобы область ввода была цифровой, так как используется сенсорная панель, в пользовательском элементе управления она работает нормально, но в диалоговом окне раскладка клавиатуры не меняется.
lt;materialDesign:DialogHost x:Name="dgh_addProduct" CloseOnClickAway="True" IsOpen="{Binding AddProduct}" Grid.RowSpan="4" gt; lt;materialDesign:DialogHost.DialogContentgt; lt;StackPanel Background="{DynamicResource MaterialDesignPaper}"gt; lt;TextBox materialDesign:HintAssist.Hint="Cantidad" BorderThickness="2" BorderBrush="{DynamicResource MaterialDesignDivider}" Style="{StaticResource MaterialDesignOutlinedTextBox}" Width="200" Margin="16" PreviewTextInput="TextBoxNumeric_PreviewTextInput" InputScope="Number" /gt; lt;StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="16"gt; lt;Button Style="{StaticResource MaterialDesignFlatDarkBgButton}" Background="Red" BorderBrush="Transparent" Content="Close" Width="100" Command="{Binding CloseAddProductCommand}" Margin=" 8 0 16 0"/gt; lt;Button Style="{StaticResource MaterialDesignFlatAccentBgButton}" BorderBrush="Transparent" Content="Agregar" Width="100" Command="{Binding CloseAddProductCommand}" Margin=" 16 0 8 0"/gt; lt;/StackPanelgt; lt;/StackPanelgt; lt;/materialDesign:DialogHost.DialogContentgt; lt;/materialDesign:DialogHostgt;
Ответ №1:
Я нашел решение добавить встроенный стиль в узел диалогового окна, вот так:
lt;materialDesign:DialogHost x:Name="dgh_addProduct" CloseOnClickAway="True" IsOpen="{Binding AddProduct}" Grid.RowSpan="4" Style="{StaticResource MaterialDesignEmbeddedDialogHost}"gt; lt;materialDesign:DialogHost.DialogContentgt; lt;StackPanel Background="{DynamicResource MaterialDesignPaper}"gt; lt;TextBox materialDesign:HintAssist.Hint="Cantidad" BorderThickness="2" BorderBrush="{DynamicResource MaterialDesignDivider}" Style="{StaticResource MaterialDesignOutlinedTextBox}" Width="200" Margin="16" PreviewTextInput="TextBoxNumeric_PreviewTextInput" InputScope="Number" /gt; lt;StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="16"gt; lt;Button Style="{StaticResource MaterialDesignFlatDarkBgButton}" Background="Red" BorderBrush="Transparent" Content="Close" Width="100" Command="{Binding CloseAddProductCommand}" Margin=" 8 0 16 0"/gt; lt;Button Style="{StaticResource MaterialDesignFlatAccentBgButton}" BorderBrush="Transparent" Content="Agregar" Width="100" Command="{Binding CloseAddProductCommand}" Margin=" 16 0 8 0"/gt; lt;/StackPanelgt; lt;/StackPanelgt; lt;/materialDesign:DialogHost.DialogContentgt; lt;/materialDesign:DialogHostgt;
Теперь он распознает область ввода и изменяет макет сенсорной панели.