none
假设这样如何实现,我在一个按钮界面里再拖出一个按钮,我想触发点击里面按钮的事件. RRS feed

  • 问题

  • 由于不是写代码的,在xml样式里面拖拉出来的控件,在里面的那个按钮写上事件不支持.

    我该怎么转变这个思维,怎么实现这样类似的功能了?
    2009年9月21日 0:59

答案

  • Button里面套Button是可以支持事件的呀。


    <Button Click="Btn1_Click">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <Button Width="100" Height="50" Click="Btn2_Click"/>
            <Button Width="100" Height="50" Grid.Row="1" Click="Btn3_Click"/>
        </Grid>
    </Button>
    2009年9月21日 3:59
  • 1. 这里的 Grid 不是赋值给 Template,而是赋值给 Content 属性。Button 是一个内容控件。根据定义,内容控件是指只允许包含一个 Item 的简单控件。这个 Item 在控件中表现为一个类型为 Object 的 Content 属性。

    2. 样式模板是用来定义 Button 外观的,自然无法实现 Button 中再套 Button 的功能。这个和定义 Content 属性不一样,上面说了, Content 属性实际上是一个 Item ,所以 Button 里面的 Button 才能引发事件。如果你有很多地方都需要这种 Button 套 Button ,那你应该制作用户控件或自定义控件,而不是设置样式模版。

    --------------------------------------------------

    如何制作用户控件?(因为我使用的是VB,所以如果你用C#,我写的代码你没办法直接用,最好直接参考下面的网页,或者在Google中搜索。)

    http://msdn.microsoft.com/zh-cn/library/dd185520.aspx

    http://blog.joycode.com/scottgu/archive/2008/04/05/115049.joy

    http://space.itpub.net/12639172/viewspace-234524
    2009年9月23日 8:54

全部回复

  • xml没有样式控件啊,你要说xaml么,应该学习一下简单的代码,比如在Blend定义了一个Storyboard.

    会后台写MyStoryboard.Begin();

    用多了就熟了,你用flash不一样还要使ActionScript嘛

    Silverlight现在很强大,以后还会更强大 国庆60周年
    2009年9月21日 2:10
    版主
  • 哦 ,,   好的.

    我按你思路找找去

    2009年9月21日 2:21
  • Button里面套Button是可以支持事件的呀。


    <Button Click="Btn1_Click">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <Button Width="100" Height="50" Click="Btn2_Click"/>
            <Button Width="100" Height="50" Grid.Row="1" Click="Btn3_Click"/>
        </Grid>
    </Button>
    2009年9月21日 3:59
  • 哦,,我试试去,  你的代码

    //1 我试过你的代码可以了,不过 看来我的问题应该是这样子.

    我<grid>子button这些内容放在另一个xaml文件里了,在样式文件里无法定义事件的是吧?~

    //2 你这个代码我第一次见到,请问Grid是不是默认赋值给Template的?

    2009年9月23日 7:33
  • 能帮忙把button写在样式模板哪里吗?    就是不是同一个文件.

    2009年9月23日 7:47
  • 1. 这里的 Grid 不是赋值给 Template,而是赋值给 Content 属性。Button 是一个内容控件。根据定义,内容控件是指只允许包含一个 Item 的简单控件。这个 Item 在控件中表现为一个类型为 Object 的 Content 属性。

    2. 样式模板是用来定义 Button 外观的,自然无法实现 Button 中再套 Button 的功能。这个和定义 Content 属性不一样,上面说了, Content 属性实际上是一个 Item ,所以 Button 里面的 Button 才能引发事件。如果你有很多地方都需要这种 Button 套 Button ,那你应该制作用户控件或自定义控件,而不是设置样式模版。

    --------------------------------------------------

    如何制作用户控件?(因为我使用的是VB,所以如果你用C#,我写的代码你没办法直接用,最好直接参考下面的网页,或者在Google中搜索。)

    http://msdn.microsoft.com/zh-cn/library/dd185520.aspx

    http://blog.joycode.com/scottgu/archive/2008/04/05/115049.joy

    http://space.itpub.net/12639172/viewspace-234524
    2009年9月23日 8:54