locked
FishEye com Blend 3 RRS feed

  • Pergunta

  • Olá pessoal, primeira vez que venho utilizar aqui a comunidade
    Trabalho em uma fábrica de software onde estamos utilizando silverlight para desenvolver a interface de nossos sistemas, estamos tendo sucesso com tudo, porém como aqui ninguém fez cursos de silverlight/blend, estamos tendo que aprender em conjunto e está tudo saindo como o esperado!

    Só que em alguns pontos encontramos alguns problemas que são bem complicados de solucionar para nós que somos programadores e temos que nos virar sózinhos aqui.

    Nesse sistema que estamos desenvolvendo agora, preciso de um menu fisheye (sim, igual aquele do MAC OS, que passa o mouse e os icones aumentam)
    Já achei vários, muitos artigos sobre o assunto, porém muitos nos dão algum arquivo para download e quando tentamos adaptar aqui para nosso sistema sempre acaba dando algum problema, na maioria das vezes por ter sido desenvolvido com BLEND 2.

    Queria ver se alguém daqui conhece algum artigo ou se tem algo que possa compartilhar sobre o assunto pois estou precisando com uma certa urgência!
    terça-feira, 26 de janeiro de 2010 14:06

Respostas

  • Gustavo,

    Eu faria assim:

    - Crio um template copia do menu item

    - Coloco o Content com VerticalAlignment o HorizontalAlignment como Center.

    - Crio um StoryBoard que quando, o grid estiver com mouserover, aumente e no normal, volte ao tamanho original.

    * Se no template estiver ContentPresenter, troca para ContentControl que é mais flexível nesse sentido.

    Eu fiz esse template num projeto para botão. A idéia é está. Dá uma olhada e adapta ao seu projeto.


    <Style x:Key="MenuButtonTemplate" TargetType="Button">
      <Setter Property="Background" Value="#FF000000"/>
      <Setter Property="Foreground" Value="#FFFFFFFF"/>
      <Setter Property="Padding" Value="0"/>
      <Setter Property="BorderThickness" Value="0"/>
      <Setter Property="BorderBrush" Value="#FF000000"/>   
      <Setter Property="Template">
       <Setter.Value>
        <ControlTemplate TargetType="Button">
         <Grid x:Name="grid" Background="Black" Height="30" Cursor="Hand">
          <VisualStateManager.VisualStateGroups>
                             <VisualStateGroup x:Name="FocusStates">
                                 <VisualState x:Name="Unfocused"/>
                                    <VisualState x:Name="Focused"/>               
                     <VisualState x:Name="MouseOver">
                   <Storyboard>
                          <ColorAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="grid" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
                                             <SplineColorKeyFrame KeyTime="00:00:00" Value="#7FD9D9D9"/>
                                            </ColorAnimationUsingKeyFrames>
              <ColorAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="contentPresenter" Storyboard.TargetProperty="(Control.Foreground).(SolidColorBrush.Color)">
                                                    <SplineColorKeyFrame KeyTime="00:00:00" Value="#FFFFAE00"/>
              </ColorAnimationUsingKeyFrames>
             </Storyboard>
                     </VisualState>
            <VisualState x:Name="Normal">
                   <Storyboard>
                          <ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="grid" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
                                             <SplineColorKeyFrame KeyTime="00:00:00.800" Value="#FF000000"/>
                                            </ColorAnimationUsingKeyFrames>
                          <ColorAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="contentPresenter" Storyboard.TargetProperty="(Control.Foreground).(SolidColorBrush.Color)">
                                                    <SplineColorKeyFrame KeyTime="00:00:00" Value="#FFFFFFFF"/>
              </ColorAnimationUsingKeyFrames>
             </Storyboard>
             
                     </VisualState>
                     <VisualState x:Name="Pressed">
                </VisualState>
                     <VisualState x:Name="Disabled"/>
               </VisualStateGroup>
           </VisualStateManager.VisualStateGroups>
          <ContentControl x:Name="contentPresenter" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Grid.ColumnSpan="2" Grid.RowSpan="2" Foreground="#FFFFFFFF"/>
         </Grid>
        </ControlTemplate>
       </Setter.Value>
      </Setter>
     </Style>

    Qualquer dúvida, é só falar.

    Samuel Fabel
    quarta-feira, 10 de março de 2010 19:58