HTC to StoryBoard - DHTML migrate to WPF (b)

Download: http://files.cnblogs.com/civ3/storyBoard.rar

Microsoft supports HTML component technology HTC, but the safety and performance have some drawbacks. In WPF, you can quickly achieve some DHTML effects that previously required by HTC in order to achieve better utilization StoryBoard.
The following two examples are very simple just to illustrate the problem:
multiplexing
DHTML: Style (+ behavior)
WPF: Resource
shape
DHTML: VML's Shape, DIV or rectangular
WPF: Rectangle
events and behavior
DHTML: Event.element with JS script
WPF: rich story board features

the following is the source
DHTML

None.gif < html >< head >
ExpandedBlockStart.gifContractedBlock.gif
< style  type ="text/css" > dot.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif.oStyle
{dot.gif}{
InBlock.gif    behavior
:url(storyBoard.htc);
InBlock.gif    background-color
:Blue;
ExpandedBlockEnd.gif
}

None.gif
</ style >
None.gif
None.gif
< title > Civ3's testing on Storyboard </ title >
None.gif
</ head >
None.gif
< body >
None.gif
< div  style ="width:100px; height:100px;"  class ="oStyle" ></ div >
None.gif
</ body ></ html >
.htc
None.gif < PUBLIC:ATTACH EVENT = " onmouseover "  ONEVENT = " mouseover() " />  
None.gif
< PUBLIC:ATTACH EVENT = " onmouseout "  ONEVENT = " mouseout() " />  
None.gif
< PUBLIC:ATTACH EVENT = " onmousedown "  ONEVENT = " mousedown() " />  
None.gif
< PUBLIC:ATTACH EVENT = " onmouseup "  ONEVENT = " mouseup() " />
None.gif
< SCRIPT LANGUAGE = " JScript " >
ExpandedBlockStart.gifContractedBlock.gif    
function  mouseover() dot.gif {
InBlock.gif    event.srcElement.style.backgroundColor
='red'; 
ExpandedBlockEnd.gif}

ExpandedBlockStart.gifContractedBlock.gif
function  mouseout() dot.gif {
InBlock.gif    event.srcElement.style.backgroundColor
='blue'; 
InBlock.gif    event.srcElement.style.width
=100;
ExpandedBlockEnd.gif}

ExpandedBlockStart.gifContractedBlock.gif
function  mousedown() dot.gif {
InBlock.gif    event.srcElement.style.width
=110
ExpandedBlockEnd.gif}

ExpandedBlockStart.gifContractedBlock.gif
function  mouseup() dot.gif {
InBlock.gif    event.srcElement.style.width
=100;
ExpandedBlockEnd.gif}

None.gif
</ SCRIPT >
XAML
None.gif < Page  xmlns ="http://schemas.microsoft.com/winfx/avalon/2005"  
None.gif  xmlns:x
="http://schemas.microsoft.com/winfx/xaml/2005"
None.gif  WindowTitle
="Civ3's testing on Storyboard" >
None.gif
< Page .Resources >
None.gif 
< Style  TargetType ="{x:Type Rectangle}"  x:Key ="oStyle" >
None.gif    
< Setter  Property ="Rectangle.Fill" >
None.gif        
< Setter .Value >
None.gif          
< SolidColorBrush  Color ="Blue" />
None.gif        
</ Setter.Value >
None.gif    
</ Setter >
None.gif    
< Style .Triggers >
None.gif     
< EventTrigger  RoutedEvent ="Rectangle.MouseEnter" >
None.gif      
< EventTrigger .Actions >
None.gif          
< BeginStoryboard >
None.gif            
< Storyboard >               
None.gif              
< ColorAnimation 
None.gif                
Storyboard.TargetProperty ="(Rectangle.Fill).(SolidColorBrush.Color)"
None.gif                From
="Blue"  To ="Red"  Duration ="0:0:.5"   />   
None.gif            
</ Storyboard >
None.gif          
</ BeginStoryboard >
None.gif      
</ EventTrigger.Actions >
None.gif         
</ EventTrigger >
None.gif
None.gif     
< EventTrigger  RoutedEvent ="Rectangle.MouseLeave" >
None.gif      
< EventTrigger .Actions >
None.gif          
< BeginStoryboard >
None.gif            
< Storyboard >               
None.gif              
< ColorAnimation 
None.gif                
Storyboard.TargetProperty ="(Rectangle.Fill).(SolidColorBrush.Color)"
None.gif                To
="Blue"  Duration ="0:0:.5"   />
None.gif        
< DoubleAnimation
None.gif            
Storyboard.TargetProperty ="Width"
None.gif        To
="100"  Duration ="0:0:.2"   />
None.gif            
</ Storyboard >
None.gif
None.gif          
</ BeginStoryboard >
None.gif      
</ EventTrigger.Actions >
None.gif         
</ EventTrigger >
None.gif
None.gif     
< EventTrigger  RoutedEvent ="Rectangle.MouseDown" >
None.gif      
< EventTrigger .Actions >
None.gif          
< BeginStoryboard >
None.gif            
< Storyboard >               
None.gif              
< DoubleAnimation
None.gif            
Storyboard.TargetProperty ="Width"
None.gif        By
="10"  Duration ="0:0:.2"   />   
None.gif            
</ Storyboard >
None.gif          
</ BeginStoryboard >
None.gif      
</ EventTrigger.Actions >
None.gif         
</ EventTrigger >
None.gif
None.gif     
< EventTrigger  RoutedEvent ="Rectangle.MouseUp" >
None.gif      
< EventTrigger .Actions >
None.gif          
< BeginStoryboard >
None.gif            
< Storyboard >               
None.gif              
< DoubleAnimation
None.gif            
Storyboard.TargetProperty ="Width"
None.gif        To
="100"  Duration ="0:0:.2"   />   
None.gif            
</ Storyboard >
None.gif          
</ BeginStoryboard >
None.gif      
</ EventTrigger.Actions >
None.gif         
</ EventTrigger >
None.gif
None.gif    
</ Style.Triggers >
None.gif 
</ Style >
None.gif
</ Page.Resources >
None.gif  
< StackPanel  Margin ="20" >
None.gif
None.gif    
None.gif    
< Rectangle  Name ="MyRectangle"  Width ="100"  Height ="100"  Style ="{StaticResource oStyle}" />
None.gif  
</ StackPanel >
None.gif
</ Page >
None.gif

Reproduced in: https: //www.cnblogs.com/civ3/archive/2006/02/12/329359.html

Guess you like

Origin blog.csdn.net/weixin_34060299/article/details/93571514