返回首页


这是非常罕见的,我曾经直接使用TextChanged事件??,但从来不说从来没有!
最近,我需要和一些奇怪的原因,它向每按下键两次。这里是一个简化的例子的问题。我添加了一个简单的TextBlock和TextBox。
,然后连接从XAML的TextChanged事件处理程序。事件处理程序只是递增计数器,并打印在屏幕上。{C}
运行它,我键入每一个字母,它增加两倍(听起来很怪异,但尝试)。
搜索了一下后,我发现了一模一样的问题)。原来,问题是如何在TextBox风格的地铁FY,在这里是一个原始模板的简化版本???

<Style x:Key="SimplefiedTextBoxStyle" TargetType="TextBox">

    <Setter Property="Template">

        <Setter.Value>

            <ControlTemplate TargetType="TextBox">

                <Grid Background="Transparent">

                    <Border x:Name="EnabledBorder">

                        <ContentControl x:Name="ContentElement" />

                    </Border>

                    <Border x:Name="DisabledOrReadonlyBorder" 

                               Visibility="Collapsed">

                        <TextBox x:Name="DisabledOrReadonlyContent" 

                            Text="{TemplateBinding Text}" />

                    </Border>

                </Grid>

            </ControlTemplate>

        </Setter.Value>

    </Setter>

</Style>

请注意,第二个TextBox,如果你删除它??事件只触发一次(但你有没有差异时,禁用/只读)。

回答

评论会员:亨利分钟 时间:2012/01/27
。国际海事组织你正在为自己的生活困难,比它需要使用的MDI子窗体

如果您的应用程序是"标准"的族谱类型,那么它是一个UML类图或组织结构图应用程序非常相似,只是在"盒子"中包含的信息将是不同的。

我可能会建议您搜索,节目类型的开源版本。例如{A}](有负载有)

有几个,看看他们是怎么做到的挑选,给你最有意义的位
评论会员:。SAKryukov 时间:2012/01/27
这样的设计是一个非常常见的错误。原则上,它可能甚至是可行的,但我知道这么多的尝试,完成类似的思想(实际上是一个好一点)mdash应用程序或组件基地;所有失败

有两种方法,工作。在这两种情况下,你不应该使用任何控件(甚至没有窗户或形式)作为图形元素。也许似乎给你,他们已经拥有你所需要的内在功能,但是这是错误的。正好相反,他们有这将使不必要的复杂性,你失去的功能。

1)使用重量轻的做法。创建所有的图形控制于一体的原始。您需要提供在重写的方法Control.OnPaint Control.Paint的处理程序中的所有图形。渲染,使用的事件参数的参数(在两种情况下)提供System.Drawing.Graphics实例。为了改变形象,使用Control.Invalidate"。为了获得更好的性能,使用一个参数(Rectangle或地区)Control.Invalidate,只是一个场景的一部分无效。

2)使用WPF。您不需要做任何渲染。相反,你应该使用Canvas,把图形原语(如线条,矩形,等,但你可以把控制以及)在画布上。这是非常简单的的。你甚至可以绘制矢量图编辑,导入矢量图形为XAML的基本类型,把保存的XAML代码资源字典和重用你的画布上。我建议使用精彩的开源编辑器Inkscape中。

最后要注意的。有没有可以使用时的MDI的情况。这是我的Microsoft最不成功的发明之一。 MDI是微软甚至强烈反对。有没有坚实的软件产品甚至使用的MDI与可接受质量的产品。您只需将吓跑你的客户,如果您使用它。不错的选择最简单的选项卡式界面,基于TabControl的。

mdash; SA
评论会员:优素福 时间:2012/01/27
嗯,我不知道,如果你的设计是可行的。你想使用形式为每个家庭的孩子吗?每个人?
认为你最终将有多少子窗体创建。
我认为你需要的是一个自定义的控制,模仿你的子窗体的行为。这与"LIL图形工作,你应该对你的方式

我2cents