【发布时间】:2016-03-11 19:28:21
【问题描述】:
我的画布中有一个拖放功能,其中有很多图像。我想改变我刚刚点击的图像的不透明度,显然它有效。但是,当我单击 2 个或更多图像并更改不透明度时,所有单击的图像也会更改。我只想更改我点击的最后一张图片。
这是我的代码:
private void CanvasLayout_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var image = e.Source as Image;
if (image != null && CanvasLayout.CaptureMouse())
{
mousePosition = e.GetPosition(CanvasLayout);
draggedImage = image;
Panel.SetZIndex(draggedImage, 1);
for (int i = 1; i < 9; i++)
{
if (draggedImage.Name == "Image" + i)
{
SelectComp_ComboBox.SelectedValue = "0" + (i + 1);
Binding binding = new Binding
{
Source = TransHidden_textBox,
Path = new PropertyPath("Text"),
};
draggedImage.SetBinding(ContentControl.OpacityProperty, binding);
}
}
}
}
private void CanvasLayout_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (draggedImage != null)
{
CanvasLayout.ReleaseMouseCapture();
Panel.SetZIndex(draggedImage, 0);
draggedImage = null;
}
}
我认为问题出在draggedImage.SetBinding(ContentControl.OpacityProperty, binding); 这一行,我需要将draggedImage 更改为Image + i,但我不知道如何将string 更改为Image。
我该怎么做?还有其他简单的方法可以解决我的问题吗?
【问题讨论】:
标签: c# wpf canvas drag-and-drop opacity