2016-06-27 2 views
0

Как получить доступ к кнопкам внутри панели стека (шаблон управления)? Значит, я должен сделать эти кнопки одним объектом.Контроль шаблонов управления доступом в Wpf?

<Window.Resources> 
    <ControlTemplate TargetType="Button" x:Key="temp" x:Name="hotel"> 
     <StackPanel x:Name="service"> 

       <Button Content="1" Width="30" Height="30" Name="tempbtn1"/> 
       <Button Content="2" Width="30" Height="30" Name="tempbtn2"/> 
       <Button Content="3" Width="30" Height="30" Name="tempbtn3"/> 
       <Button Content="4" Width="30" Height="30" Name="tempbtn4"/> 
      </StackPanel> 

    </ControlTemplate>  
</Window.Resources> 

<Grid> 
    <TextBox x:Name="txttype" TextWrapping="Wrap" Text="Room Type" Width="120" Height="30" Margin="10 0 0 0"/> 
    <Button x:Name="button" Content="Submit" HorizontalAlignment="Left" Margin="9,0,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/> 

    <StackPanel Orientation="Horizontal" x:Name="Deluxe"> 
     <Button x:Name="btn1" Content="1" Width="60" Height="60" Template="{StaticResource temp}"/> 
     <Button Margin="10 0 0 0" Content="2" x:Name="btn2" Width="60" Height="60" Template="{StaticResource temp}"/> 
    </StackPanel> 
</Grid> 
+4

Что вы пытаетесь достичь? Разделение одной кнопки на 4 кнопки не имеет для меня никакого смысла. Пожалуйста, объясните сами – lokusking

+0

Если я даю 1 в текстовом поле, тогда первая кнопка шаблона управления кнопки (называемая btn1) должна быть изменена цветом фона. – Divagar

ответ

0

Я не понимаю точного требования вас. Но я надеюсь, что следующая информация будет полезна для вас.

Общий синтаксис, чтобы получить элементы, которые объявлены внутри шаблона управления является:

var template = controlName.Template; 
var myControl = (typeofthecontrol)template.FindName("MyControlName",controlName); 

В вашем примере

var template = btn1.Template; 
var myControl = (Button)template.FindName("tempbtn1", MyList); 
Смежные вопросы