如何将焦点设置在MessageDialog中的元素上

时间:2013-04-19 13:47:34

标签: xaml windows-runtime devexpress

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

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

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

代码:

var dialog = _serviceContainer.GetService<IDXDialogService>("InputDialog");
dialog.Content = aModel;
var result = await dialog.ShowAsync();      
if (result == MessageDialogResult.OK)
{
//woho, check input
}

XAML:

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

1 个答案:

答案 0 :(得分:0)

我通过将datatemplate内容放入usercontrol来解决它。在usercontrol中,我添加了一个Loaded事件,并将焦点设置在那里的文本框上。像魅力一样工作!