2013-11-28 60 views
0

我有一個如下所示的Windows Phone應用程序。文本框中有兩個按鈕。當用戶點擊「beyazbtn」時,我希望它被摺疊並且「saribtn」被摺疊爲可見。我可以讓兩個事件處理程序處理兩個按鈕的點擊,但是當我嘗試使另一個按鈕崩潰時,我意識到我無法在C#代碼中訪問beyazbtn或saribtn變量。我如何訪問它們?如何訪問文本框中的按鈕?

<phone:PhoneApplicationPage.Resources> 
    <Style x:Key="ButtonStyle1" TargetType="Button"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
        <Grid> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="31*"/> 
          <RowDefinition Height="21*"/> 
         </Grid.RowDefinitions> 
         <es:RegularPolygon Fill="#FFF4F4F5" InnerRadius="0.47211" PointCount="5" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" Grid.RowSpan="2"/> 
         <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="0,11,0,10" Grid.RowSpan="2"/> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
    <Style x:Key="ButtonStyle2" TargetType="Button"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
        <Grid> 
         <es:RegularPolygon Fill="#FFFFBA02" InnerRadius="0.47211" PointCount="5" Stretch="Fill" Stroke="Black" UseLayoutRounding="False"/> 
         <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
    <ControlTemplate x:Key="TextBoxControlTemplate1" TargetType="TextBox"> 
     <Grid> 
      <Button x:Name="beyazbtn" Content="" Height="52" Margin="374,0,10,10" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Bottom" Click="beyazbtn_Click"/> 
      <Button x:Name="saribtn" Content="" HorizontalAlignment="Left" Height="52" Margin="374,0,0,10" Style="{StaticResource ButtonStyle2}" VerticalAlignment="Bottom" Width="52" Click="saribtn_Click"/> 
     </Grid> 
    </ControlTemplate> 
</phone:PhoneApplicationPage.Resources> 

回答

0

TextBoxControlTemplate1Grid添加Loaded事件。然後保存按鈕引用。

Button beyazbtn, saribtn; 
private void Grid_Loaded_1(object sender, RoutedEventArgs e) 
{ 
    beyazbtn = ((Grid)sender).Children[0] as Button; 
    saribtn = ((Grid)sender).Children[1] as Button; 
}