1. Capture Mouse是怎么回事?

UIElement.CaptureMouse() and Mouse.Capture()
Capture mouse能够使 即使在控件之外也能够获取鼠标事件,拖,拉鼠标时最有用。
When an element captures the mouse, it receives mouse input whether or not the cursor is within its borders.

释放:UIElement.ReleaseMouseCapture() 或者Mouse.Capture(null)

注意只能获取MouseUp 与MouseDown事件,其他的如MouseLeftUp与MouseLeftDown不能获取

 

2. XAML中的Uid是做什么用的?

x:Uid Attribute

x:Uid Attribute是XAML中唯一的特例:它可以放在一个property element中,任何其他的attribute放在property 元素上都是非法的。它是被Localization 进程或者工具使用的。

3. 如何理解GridUnitType

GridUnitType

<Window x:Class="WpfApplication1.Window1"
    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
    Title
="Window1" Height="300" Width="350" Margin="0,0,0,0">
    
<Grid ShowGridLines="True" Width="300">
        
<!--the availabe width for this grid is 300 pixel-->
        
<Grid.ColumnDefinitions>
            
<ColumnDefinition Width="Auto"></ColumnDefinition>
            
<!--The width of this column is determined by its content, its 20pixel-->
            
<ColumnDefinition Width="2*"></ColumnDefinition>
            
<!--the remaining space is 280pixel(300-20),divided by 6,this column will have 2*(280/6)=93-->
            
<ColumnDefinition Width="3*"></ColumnDefinition>
            
<ColumnDefinition Width="1*"></ColumnDefinition>
        
</Grid.ColumnDefinitions>
        
<Grid.RowDefinitions>
            
<RowDefinition></RowDefinition>
            
<RowDefinition></RowDefinition>
            
<RowDefinition></RowDefinition>
        
</Grid.RowDefinitions>
        
<Button Width="20" Grid.Column="0"></Button>
        
<!--the width of this button determine the width of first column-->
    
</Grid>
</Window>