WPF动态定位相对于按钮单击

时间:2011-03-08 10:58:22

标签: wpf

我目前正在开发一个具有接口的应用程序,该接口由表示操作的多个按钮组成,只能为数据库中的每个记录分配一个操作。当用户选择一个动作时,他们会得到一个可选项,其中包含3个按钮的选项。

执行此操作的一种方法是为每个操作按钮(7x3)在正确位置定义3个额外按钮,并仅根据单击的操作按钮显示该组。但是,这些按钮的值对于每个动作都是相同的,因此如果这些按钮值可以定义一次,然后在相对于动作按钮单击的适当位置显示,则会有意义。

有没有办法在WPF中执行此操作?

1 个答案:

答案 0 :(得分:1)

在WPF中有很多方法可以做到这一点。我认为最简单的方法是使用Grid控件,如:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
        ......
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>

    <Button Grid.Row="0" Grid.Column="0">Button 1</Button>
    <Button Grid.Row="1" Grid.Column="0">Button 2</Button>
    <Button Grid.Row="2" Grid.Column="0">Button 3</Button>
    ......

    <StackPanel Name="PanelWithSuboptions" Grid.Column="1" Visibility="Collapsed">
        <Button>Suboption A</Button>
        <Button>Suboption B</Button>
        <Button>Suboption C</Button>
    </StackPanel>
</Grid>

现在,当单击按钮1,按钮2或按钮3时,将PanelWithSuboptions的[Grid.Row][1]附加属性设置为0,1分别为2,并将其可见性设置为可见,并且它们显示在正确的“主”按钮附近。

其他方法是制作UserControl或为包含其他3个小按钮的每个主按钮使用自定义控件模板。