我想在WPF中创建一个开关按钮,并希望当用户单击它时,它可以改变外观(如果是打开状态则切换为关闭状态,如果是关闭状态则切换为打开状态),使用图像来实现。
我已将要使用的图像添加到资源中:
现在我需要创建两个行为相同的开关按钮。当我尝试为第二个按钮使用相同的资源时,发生了异常。
<Window.Resources>
<Image x:Key="Off1" Source="/WPFApplication;component/Images/off_button.png" Height="30" Width="70" />
<Image x:Key="On1" Source="/WPFApplication;component/Images/on_button.png" Height="30" Width="70"/>
</Window.Resources>
事件代码中,“flag”是一个布尔局部变量,其初始值为true:
private void OnOff1Btn_Click(object sender, RoutedEventArgs e)
{
if (flag)
{
OnOff1Btn.Content = FindResource("Off1");
flag = false;
}
else
{
OnOff1Btn.Content = FindResource("On1");
flag = true;
}
}
现在我需要创建两个行为相同的开关按钮。当我尝试为第二个按钮使用相同的资源时,发生了异常。
Specified element is already the logical child of another element. Disconnect it first.
我可以在第二个按钮中使用相同的图像资源,还是必须再次添加具有不同键的图像资源作为资源?