2010-12-28 12 views
1

ビデオカメラ用のコントロールパネルを作成しようとしていますが、パネルには上下左右のボタンがあります。各カメラは上下左右に機能します右は、左側、中央、右側の3つの画像(下のコードを参照)で表されます。コントロールパネルは円形であるため、コーナー画像の種類は重複しています(ビジュアルがなくても説明できます)。たとえば、上にクリックすると、最初の3つの画像(左側、中央、右側)を隠し、ボタンが押されたことを示す左、中央、右の3つの画像を表示する必要があります。私はボタンテンプレートの中にグリッドを置くことでこれを実現しています。私が持っている問題は、コントロールのコーナー画像には、実際にこれを表す4つの画像があることです。たとえば、左上隅の場合、4つの画像は1を表します。トップはクリックされません。 2.上にクリックし、3.左にクリックしなかった、そして4.左にクリックした。私の問題は、左のボタンをクリックしたときに、上のコントロールがクリックされたとき、または左のボタンの画像が優先されるときに、上のボタンに含まれる画像を優先する必要があるかどうかです。だから、トップボタンをクリックしたときに左ボタンの画像表示プロパティを変更したいのと同様です。これは説明するのが本当に難しいので、あまり意味がない場合はお詫びしますが、誰かが私の苦境に興味があれば、リクエストに応じてソースコードを電子メールで送ることができます。WPFの問題複数のボタンテンプレートで画像のスタイルを変更

<Grid> 

    <Canvas> 



      <!--<StackPanel>--> 
     <Button Name="TopSide" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Height="34" Width="102" 
    Canvas.Left="97" Canvas.Top="60" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > 

     <Button.Template> 
      <ControlTemplate TargetType="{x:Type Button}"> 
       <Grid Width="100"> 
        <Canvas> 
         <Image Name="TopRightNormal" Source="Resources/topright_off.jpg" Height="34" Width="34" Canvas.Left="66"></Image> 
         <Image Name="TopRightDown" Source="Resources/topright_down.jpg" Height="34" Width="34" Canvas.Left="66" Visibility="Hidden" ></Image> 

         <Image Name="TopNormal" Source="Resources/topcenter_off.jpg" Height="34" Width="34" Canvas.Left="34" /> 
         <Image Name="TopPressed" Source="Resources/topcenter_down.jpg" Height="34" Width="34" Canvas.Left="34" Visibility="Hidden" /> 
         <Image Name="TopDisabled" Source="Resources/topcenter_off.jpg" Height="34" Width="34" Canvas.Left="34" Visibility="Hidden" /> 

         <Image Name="TopLeftNormal" Source="Resources/topleft_off.jpg" Height="34" Width="34" Canvas.Left="2" ></Image> 
         <Image Name="TopLeftDown" Opacity="0" Source="Resources/topleft_down.jpg" Height="34" Width="34" Canvas.Left="2" Visibility="Hidden" ></Image> 

        </Canvas> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsPressed" Value="True"> 
         <Setter TargetName="TopNormal" Property="Visibility" Value="Hidden" /> 
         <Setter TargetName="TopPressed" Property="Visibility" Value="Visible" /> 

         <Setter TargetName="TopRightNormal" Property="Visibility" Value="Hidden" /> 
         <Setter TargetName="TopRightDown" Property="Visibility" Value="Visible" /> 

         <Setter TargetName="TopLeftNormal" Property="Visibility" Value="Hidden" /> 
         <Setter TargetName="TopLeftDown" Property="Visibility" Value="Visible" /> 
         <Setter TargetName="TopLeftDown" Property="Opacity" Value="100" /> 

        </Trigger> 
        <Trigger Property="IsEnabled" Value="False"> 
         <Setter TargetName="TopNormal" Property="Visibility" Value="Hidden" /> 
         <Setter TargetName="TopDisabled" Property="Visibility" Value="Visible" /> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Button.Template> 

    </Button> 

    <!--</StackPanel>--> 

    <!--<StackPanel>--> 
    <Button Name="LeftSide" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      Canvas.Left="100" Canvas.Top="60" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" MouseDown="Button_MouseDown_1"> 
     <Button.Template> 
      <ControlTemplate TargetType="{x:Type Button}"> 
       <Grid Width="34" Height="100"> 
        <Canvas> 

         <Image Name="TopLeftNormal" Source="Resources/topleft_off.jpg" Height="34" Width="34" Canvas.Left="0"></Image> 
         <Image Name="TopLeftDown" Opacity="0" Source="Resources/topleft_leftdown.jpg" Height="34" Width="34" Canvas.Left="0" Visibility="Hidden" ></Image> 


         <Image Name="Normal" Source="Resources/leftcenter_off.jpg" Height="34" Width="34" Canvas.Top="32" Canvas.Left="0"/> 
         <Image Name="Pressed" Source="Resources/leftcenter_down.jpg" Visibility="Hidden" Canvas.Top="32" Height="34" Width="34" /> 
         <Image Name="Disabled" Source="Resources/leftcenter_off.jpg" Visibility="Hidden" Height="34" Width="34" Canvas.Top="32" /> 
        </Canvas> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsPressed" Value="True"> 
         <Setter TargetName="Normal" Property="Visibility" Value="Hidden" /> 
         <Setter TargetName="Pressed" Property="Visibility" Value="Visible" /> 

         <Setter TargetName="TopLeftNormal" Property="Visibility" Value="Hidden" /> 
         <Setter TargetName="TopLeftNormal" Property="Opacity" Value="0" /> 

         <Setter TargetName="TopLeftDown" Property="Visibility" Value="Visible" /> 
         <Setter TargetName="TopLeftDown" Property="Opacity" Value="100" /> 

        </Trigger> 
        <Trigger Property="IsEnabled" Value="False"> 
         <Setter TargetName="Normal" Property="Visibility" Value="Hidden" /> 
         <Setter TargetName="Disabled" Property="Visibility" Value="Visible" /> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Button.Template> 
    </Button> 
    <!--</StackPanel>--> 


    <!--<StackPanel>--> 
    <Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Height="34" Width="34" 
    Canvas.Left="165" Canvas.Top="92" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" MouseDown="Button_MouseDown_2" > 
     <Button.Template> 
      <ControlTemplate TargetType="{x:Type Button}"> 
       <Grid> 
        <Image Name="Normal" Source="Resources/rightcenter_off.jpg" /> 
        <Image Name="Pressed" Source="Resources/rightcenter_down.jpg" Visibility="Hidden" /> 
        <Image Name="Disabled" Source="Resources/rightcenter_off.jpg" Visibility="Hidden" /> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsPressed" Value="True"> 
         <Setter TargetName="Normal" Property="Visibility" Value="Hidden" /> 
         <Setter TargetName="Pressed" Property="Visibility" Value="Visible" /> 
        </Trigger> 
        <Trigger Property="IsEnabled" Value="False"> 
         <Setter TargetName="Normal" Property="Visibility" Value="Hidden" /> 
         <Setter TargetName="Disabled" Property="Visibility" Value="Visible" /> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Button.Template> 
    </Button> 
    <!--</StackPanel>--> 

    <!--<StackPanel>--> 
    <Button xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Height="34" Width="34" 
    Canvas.Left="133" Canvas.Top="124" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > 
     <Button.Template> 
      <ControlTemplate TargetType="{x:Type Button}"> 
       <Grid> 
        <Image Name="BottomNormal" Source="Resources/bottomcenter_off.jpg" /> 
        <Image Name="BottomPressed" Source="Resources/bottomcenter_down.jpg" Visibility="Hidden" /> 
        <Image Name="BottomDisabled" Source="Resources/bottomcenter_off.jpg" Visibility="Hidden" /> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsPressed" Value="True"> 
         <Setter TargetName="BottomNormal" Property="Visibility" Value="Hidden" /> 
         <Setter TargetName="BottomPressed" Property="Visibility" Value="Visible" /> 
        </Trigger> 
        <Trigger Property="IsEnabled" Value="False"> 
         <Setter TargetName="BottomNormal" Property="Visibility" Value="Hidden" /> 
         <Setter TargetName="BottomDisabled" Property="Visibility" Value="Visible" /> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Button.Template> 
    </Button> 
    <!--</StackPanel>--> 


    <Image Source="Resources/bottomright_off.jpg" Height="34" Width="34" Canvas.Left="165" Canvas.Top="124"></Image> 
    <Image Source="Resources/bottomleft_off.jpg" Height="34" Width="34" Canvas.Left="100" Canvas.Top="124"></Image> 
    <!--<ToggleButton Style="{StaticResource MyToggleButtonStyle}" Height="34" Width="34" Margin="150,100"/>--> 


    </Canvas> 
</Grid> 

答えて

0

私は隠したい子コントロールのボタンのButton.Template内の画像にアクセスする方法を見つけました。私は使用しました

イメージimgTopLeftNormal = LeftSide.Template.FindName( "TopLeftNormal"、LeftSide)as Image;

のコードがあります。

関連する問題