Вместо проверки имени файла Fill
, вы можете изменить свойство Tag
Rectangle (или создать свое собственное UserControl
). Тогда, например, вы можете сделать это:
<Rectangle Height="auto" Width="auto" x:Name="Honey" ManipulationStarted="Honey_Started" Tag="image1">
<Rectangle.Fill>
<ImageBrush ImageSource="image100.jpg" />
</Rectangle.Fill>
</Rectangle>
Я добавил Tag="image1"
в качестве атрибута в Rectangle
. Затем вы можете получить доступ к этому в коде и проверить.
private void Honey_Started(object sender, ManipulationStartedEventArgs e)
{
if (Honey.Tag.ToString() == "image1")
{
ImageBrush ib = new ImageBrush();
BitmapImage bImage = new BitmapImage(new Uri("900image.jpg",UriKind.Relative));
ib.ImageSource = bImage;
Honey.Tag = "900image.jpg";
Honey.Fill = ib;
}
}
Есть и другие методы. Все, что я сделал в событии Honey_Started
, это создал новый код ImageBrush
, присвоил ему изображение (900image.jpg
) и затем установил, что ImageBrush
будет значением Fill
для прямоугольника.
Альтернативным методом может быть сохранение двух ImageBrushes
в виде переменной уровня класса и использование их для сравнения значения.
BitmapImage biImage100 = new BitmapImage(new Uri("/Jar/image100.jpg",UriKind.Relative));
ImageBrush ibImage100 = new ImageBrush() { ImageSource = biImage100 };
ImageBrush ib900image = new ImageBrush() { /*assign the 900image.jpg image*/ };
private void Honey_Started(object sender, ManipulationStartedEventArgs e)
{
if (Honey.Fill == ibImage100)
{
Honey.Fill = ib900image;
}
}