Xaml 如何在MessageDialog内的元素上设置焦点

Xaml 如何在MessageDialog内的元素上设置焦点,xaml,windows-runtime,devexpress,Xaml,Windows Runtime,Devexpress,我正在构建一个windows应用商店应用程序,我正在使用DevXpress工具来实现它。但我认为这个问题可能有一个普遍的解决办法。当我打开对话框时,我想将焦点设置在一个文本框上,以便您可以立即开始键入 我想知道我是否可以通过XAML设置一个默认字段,或者我是否只需要通过代码来完成它,如果我必须通过代码来完成它,我该怎么做 我没有太多代码要显示,但是: 代码: var dialog=\u serviceContainer.GetService(“InputDialog”); dialog.Cont

我正在构建一个windows应用商店应用程序,我正在使用DevXpress工具来实现它。但我认为这个问题可能有一个普遍的解决办法。当我打开对话框时,我想将焦点设置在一个文本框上,以便您可以立即开始键入

我想知道我是否可以通过XAML设置一个默认字段,或者我是否只需要通过代码来完成它,如果我必须通过代码来完成它,我该怎么做

我没有太多代码要显示,但是:

代码:

var dialog=\u serviceContainer.GetService(“InputDialog”);
dialog.Content=aModel;
var result=wait dialog.ShowAsync();
if(result==MessageDialogResult.OK)
{
//哇,检查输入
}
XAML:



我通过将datatemplate内容放入usercontrol解决了这个问题。在usercontrol中,我添加了一个加载的事件,并将焦点设置在文本框上。工作起来很有魅力

根据您使用的对象,您希望初始焦点的对象上的
TabIndex=“0”
可以工作……但这是SL/WPF等吗?标记表示WinRT,而不是SL或WPF。
var dialog = _serviceContainer.GetService<IDXDialogService>("InputDialog");
dialog.Content = aModel;
var result = await dialog.ShowAsync();      
if (result == MessageDialogResult.OK)
{
//woho, check input
}
    <DataTemplate x:Key="InputDialogContentTemplate">
    <TextBox x:Name="InputTextBox"
             Text="{Binding Input,
                            Mode=TwoWay}" />
    </DataTemplate>

    <dc:DXDialogService Key="ScanInputDialog"
                        Buttons="OKCancel"
                        Title="Input Something"
                        ContentTemplate="{StaticResource InputDialogContentTemplate}"
                        DefaultDialogButton="Ok" />