Как сделать эффект отражения в WPF? (из кода)
Мне нужно иметь некоторые зеркальные объекты в WPF. У меня есть Canvas с некоторым содержанием, и мне нужно 50 визуальных клонов, и если я изменю что-то в источнике, он должен быть обновлен в этих клонах. Я знаю, что это легко сделать в XAML, привязав визуальный элемент VisualBrush к элементу, но может, похоже, сделать это из кода.
Кто-нибудь может помочь?
4 ответа
Хорошо, пока что я нашел решение (через Sese). Если кому-то интересно, найдите его ниже:
VisualBrush VisualBrush1 = new VisualBrush();
VisualBrush1.TileMode = TileMode.FlipXY;
VisualBrush1.Viewport = new Rect(0.5, 0.5, 0.5, 0.5);
Binding bb = new Binding { ElementName = "button1" };
BindingOperations.SetBinding(VisualBrush1,VisualBrush.VisualProperty, bb);
rectangle1.Fill = VisualBrush1;
и в XAML:
<Grid>
<Button Height="39"
Margin="82,20,87,0"
Name="button1"
VerticalAlignment="Top">Button</Button>
<Rectangle Margin="82,56,87,0"
Name="rectangle1"
Height="37"
VerticalAlignment="Top">
</Rectangle>
</Grid>
Может быть, вы найдете это полезным, Даниэль
Посмотрите на этот пример создания прикрепленного поведения. Вы можете использовать поведение и просто создать и присоединить экземпляр, используя код, или вы можете использовать код в примере непосредственно для создания отражений.
Вот элемент управления, который я написал давно, который создает эффект отражения в коде:
http://www.nbdtech.com/Blog/archive/2007/11/21/WPF-Reflection-Control.aspx
Если все, что вам нужно, это простое отражение, вот публикация со ссылкой на учебное пособие и, что более интересно, готовый элемент управления, который вы можете просто использовать (в Infragistics.Toybox.dll) - обязательно сначала проверьте его лицензию, Я не знаю, каков его статус.
http://blogs.infragistics.com/blogs/grant_hinkson/archive/2007/01/14/wpf-reflection-control.aspx