3
我在接口有一个自定义的按钮,用下面的样式定义里面:获取的ScrollViewer自定义风格的按钮
<Style x:Key="KinectCustomButton" TargetType="k:KinectCircleButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="k:KinectCircleButton">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="60*"/>
<RowDefinition Height="40*"/>
</Grid.RowDefinitions>
<k:KinectCircleButton Grid.Row="0" VerticalAlignment="Bottom" Foreground="{TemplateBinding Foreground}" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
<ContentPresenter x:Name="content"/>
</k:KinectCircleButton>
<ScrollViewer Grid.Row="1">
<TextBlock TextAlignment="Center" VerticalAlignment="Top" TextWrapping="Wrap" Text="{TemplateBinding Label}" Foreground="{TemplateBinding Foreground}" FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontWeight="{TemplateBinding FontWeight}"/>
</ScrollViewer>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我在窗口实例化这些按钮中的六个。现在我需要为这些按钮中的每一个访问ScrollViewer元素。 我试过这种方法:How can I find WPF controls by name or type?但它不工作。我也尝试访问我自定义的KinectCustomButton的Template属性,但是如果我试图找到ScrollViewer实例,我会从模板中获取一个,而不是按钮实例中的一个(所以TextBlock里面的文本是空的)。有什么方法可以获得我想要的吗?
'现在我需要为这些按钮中的每一个访问ScrollViewer元素 - 为什么?不要在程序代码中操作UI元素。 –
我在这里做的是在我的scrollviewer元素内部实现自动滚动,所以我需要获得对它们的引用以应用我的自动滚动方法。如果你的意思是这样做会阻止UI线程(或类似的东西),我已经照顾它了 – breathe0