【问题标题】:Prevent WPF Textbox from changing appearance when focused防止 WPF 文本框在获得焦点时改变外观
【发布时间】:2013-01-31 04:54:14
【问题描述】:

在我的自定义控件中,我有 2 个文本框。当它们中的任何一个被聚焦时,它会稍微改变它的风格......它会失去一点它的边框。我想阻止这种行为,这似乎是默认的文本框行为。

现在,我假设它与样式有关,可能与文本框模板的一部分有关

<Setter Property="FocusVisualStyle" Value="{x:Null}"/>

但是,有什么办法可以防止这种情况发生吗?

【问题讨论】:

    标签: c# wpf custom-controls


    【解决方案1】:
    1. 您需要一个用于自定义控件的控件模板。
    2. 在那里的资源中,您需要设置所有文本框目标类型的样式。这样,您就不会影响常规文本框。

    如果您分享一些我们可以查看/修改以实现您需要的代码,将会很有帮助。

    【讨论】:

      【解决方案2】:

      您必须编辑默认的TextBox ControlTemplate,您可以找到here

      【讨论】:

        【解决方案3】:

        @Daniel 你必须编辑Focussed State StoryBoard。为此编辑您的TextBox Template 以更改状态。如果您有Expression Blend,这对您来说很容易。

        【讨论】:

        • 我没有表情混合,但是看着默认的 TextBox ControlTemplate 我找不到焦点状态故事板...我想我真的错过了一些重要的东西吗?这是 TextBoxBase 中的故事板吗?还是我只是设置一个新的?无论如何,感谢您到目前为止的回答
        • 这里有一个关于在哪里/如何找到默认主题内容的问题:stackoverflow.com/questions/3548319/…
        • 好的,我知道它是如何工作的,有什么简单的方法可以删除焦点状态故事板吗?还是我覆盖它?那么,我在msdn.microsoft.com/en-us/library/ms752068(v=vs.100).aspx 中看到了 TextBox 控件的视觉状态,我是否只是再次定义了 Foccussed 状态? (对不起,如果这个问题可能表明缺乏 WPF 知识)
        • 好的,明白了,如果我只是在 TextBox 样式中省略了 Focussed 状态故事板,那么它不会改变(回想起来很有意义)。非常感谢
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-05
        相关资源
        最近更新 更多