读书人

WPF:怎么访问Custom Control的内部元素

发布时间: 2012-09-29 10:30:01 作者: rapoo

WPF:如何访问Custom Control的内部元素
我定义了一个Custom Control:

XML code
<ResourceDictionary    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    xmlns:local="clr-namespace:Test">    <Style TargetType="{x:Type local:CC1}">        <Setter Property="Template">            <Setter.Value>                <ControlTemplate TargetType="{x:Type local:CC1}">                    <Viewbox x:Name="MView">                        <Grid Width="50" Height="50" x:Name="MGrid" Background="Red">                            <Grid.RenderTransform>                                <TranslateTransform X="0" Y="0"/>                            </Grid.RenderTransform>                        </Grid>                    </Viewbox>                </ControlTemplate>            </Setter.Value>        </Setter>    </Style></ResourceDictionary>

1. 我想在CC1的.cs文件中对MGrid的进行变形如实现移动到某一位置:
C# code
    public class CC1 : Control    {        static CC1()        {            DefaultStyleKeyProperty.OverrideMetadata(typeof(CC1), new FrameworkPropertyMetadata(typeof(CC1)));        }        public void MoveTo(double x, double y)        {            // 控制MGrid的RenderTransform的TranslateTransform,请问如何控制?        }    }

2. 我想在调用CC1的程序中(也就是外部)对CC1的MGrid的RenderTransform进行控制,请问应该如何暴露到外边?是通过上述方法的形式么?不能像UserControl那样直接将MGrid起一个名字就暴露到外边么?

请指教下实现方法(大家正常的做法呢?),非常感激!

[解决办法]
VisualTreeHelper.GetChild(ElementName,Index)
一层层找

读书人网 >C#

热点推荐