4

我在一个窗口中有 UserControl。当用户使用“Tab”键访问窗口时,用户控件将获得焦点并在其周围绘制虚线边框。如何防止这种行为? 在此处输入图像描述

4

3 回答 3

7

试试它的控制集Focusable = "False"。例子:

<Grid Focusable="False">
...
</Grid>

或将 设置Style为专注于自己:

<Grid FocusVisualStyle="{x:Null}" />

此外,Style重点可能是:

<Style x:Key="MyItemFocusVisual" TargetType="{x:Type Control}">
    <Setter Property="Control.Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Control}">
                <Border SnapsToDevicePixels="True" CornerRadius="0" BorderThickness="5" BorderBrush="#7B2F81" />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

使用:

<Grid Focusable="True" FocusVisualStyle="{StaticResource MyItemFocusVisual}" ... />

Output

在此处输入图像描述

于 2013-08-05T16:14:42.620 回答
5

如果您只想阻止它通过 Tabbing 接受焦点,只需在对象上声明它,IsTabStop="False"或者您可以为其编辑控件模板并摆脱焦点更改。

于 2013-08-05T15:40:16.790 回答
0

这是我的错误。我有 xaml:

<ContentControl>
  <ScrollViewer name="viewport"/>
</ContentControl>

并且“viewport.Content”从代码隐藏设置为我的 UserControl。

绘制焦点边框的是一个 ContentControl。我删除了它,只留下了一个 . 问题解决了。

于 2013-08-06T04:56:13.830 回答