2012-03-14 59 views
1

我非常喜歡wpf的noob,但是我有一個應用程序來編寫,涉及在鼠標離開父容器時隱藏某些邊框/控件的某些部分。隱藏組合框邊框和下拉菜單,當鼠標離開時只是留下文字

我設法做到了這一點,只是簡單地使用不透明度&或邊框刷顏色的故事板動畫,但組合框是一個不同的魚水壺,所以它看起來,我的猜測並不容易!

只需要重新進行操作,我需要隱藏控件的所有部分,使其看起來像組合框,即邊框和下拉箭頭按鈕 - 使所選文本可見。最好用動畫,當鼠標離開它的父容器時。 此XAML顯示文本框觸發:

<Grid.Triggers> 
     <EventTrigger RoutedEvent="Grid.MouseEnter"> 
      <EventTrigger.Actions> 
       <BeginStoryboard Storyboard="{StaticResource showTextbox}"/> 
      </EventTrigger.Actions> 
     </EventTrigger> 
     <EventTrigger RoutedEvent="Grid.MouseLeave"> 
      <EventTrigger.Actions> 
       <BeginStoryboard Storyboard="{StaticResource hideTextbox}"/> 
      </EventTrigger.Actions> 
     </EventTrigger> 
    </Grid.Triggers> 

這XAML是動畫故事板。

 <Storyboard x:Key="showTextbox" > 
      <ColorAnimation Storyboard.TargetName="textBox1" Storyboard.TargetProperty="(TextBox.BorderBrush).Color" From="White" To="Black" Duration="0:0:0.25" AutoReverse="False" /> 
     </Storyboard> 
     <Storyboard x:Key="hideTextbox" > 
      <ColorAnimation Storyboard.TargetName="textBox1" Storyboard.TargetProperty="(TextBox.BorderBrush).Color" From="Black" To="White" Duration="0:0:0.25" AutoReverse="False" /> 
     </Storyboard> 

感謝您的任何幫助或指示!

回答

0

組合框的問題是它實際上由不同部分組成,包括一個togglebutton和popup。所以要改變它的風格,你需要改變它的部件的風格。

改變組合框的風格的一個例子: http://blog.xamltemplates.net/?p=12

如果從例子中使用的代碼,然後做你想做的,改變「ComboBoxReadonlyToggleButton」風格:

  • 刪除箭頭,刪除路徑。

  • 添加動畫,在 'ControlTemplate.Triggers' 部分添加觸發器

  • 去除邊框,改變了borderThickness 0