Как сделать эффект отражения в 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

Другие вопросы по тегам