WPF MVVM禁用焦点在ContentControl上(使用Tab键)

时间:2015-06-07 10:16:13

标签: wpf mvvm

我有一个ContentControl绑定的窗口:

<ContentControl Content="{Binding CurrentViewModel}" />

我还有一个空的用户控件绑定到ContentControl

<UserControl x:Class="UserControl1"
         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" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
    </Grid>
</UserControl>

当我运行并按下标签键盘时,我在内容控件周围会出现一个虚线矩形。如何禁用此功能?

我尝试使用Focusable="False"FocusVisualStyle="{x:Null}"但没有成功......

2 个答案:

答案 0 :(得分:0)

重写ContentControl样式并将属性FocusVisualStyle添加为null并使用样式属性实现

<ContentControl Height="200" Width="200" FocusVisualStyle="{x:Null}">
            <ContentControl.Content>
                <local:UserControl1/>
            </ContentControl.Content>
       </ContentControl>

答案 1 :(得分:0)

您是否尝试过设置IsTabStop =“False”,例如......

Loaded += (sender, e) =>
MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));

我建议你把它与这个技巧结合起来:

import (
    "fmt"
)

var a string
//A use of a function is not allowed
//make(&a)


//Need to call init
func init() {
    make(&a)
}

func main() {
    fmt.Println(a)
}

func make(b *string) {
    *b = "abc"
}

从这个问题的答案:WPF and initial focus