如何到达在ItemsControl中创建的按钮对象

本文关键字:创建 按钮 对象 ItemsControl | 更新日期: 2023-09-27 17:54:46

我在UWP中做了这样的按钮:

        <ItemsControl x:Name="tStack" Grid.Row="1">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate x:Name="iPT">
                <StackPanel x:Name="tStack1" Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button Height="64" Width="64"  ToolTipService.ToolTip="{Binding Name}" Click="Button_Click" Tag="{Binding AppUri}" Background="{Binding Color}"  >
                    <StackPanel>
                        <Image Source="{Binding IconUri}"></Image>
                    </StackPanel>
                </Button>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

现在,在点击它们之后,我想要将被点击的一个的背景颜色设置为某种颜色,并将其余的背景颜色设置为透明。什么好主意吗?

如何到达在ItemsControl中创建的按钮对象

您可以通过将当前活动的按钮保存到一个变量来跟踪它。然后将所有按钮绑定到同一个click -函数。当任何按钮被单击时,重置活动按钮的背景,将变量更改为被单击的按钮,并将其背景设置为所需的颜色。

Button activeButton;
void Button_Click(Object sender, RoutedEventArgs e)
{
    activeButton.Background = null;
    activeButton = (Button)sender;
    activeButton.Background = Brushes.Blue;
}