您的位置: 知识库 » 博客文章

Two Xaml Tricks

作者:Sheva  来源:博客园  发布时间:2006-10-03 15:18  阅读:1459 次  原文链接   [收藏]  
1. Declare array object in xaml:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:sys
="clr-namespace:System;assembly=mscorlib">

    
<Grid>
        
<ListBox Width="200" Height="200" BorderBrush="Navy" BorderThickness="1">
            
<ListBox.ItemsSource>
                
<x:Array Type="{x:Type sys:String}">
                    
<sys:String>Paviel Dedved</sys:String>
                    
<sys:String>Andriy Shevchenko</sys:String>
                    
<sys:String>Paolo Maldini</sys:String>
                    
<sys:String>Robert Baggio</sys:String>
                    
<sys:String>Alessandro Del Piero</sys:String>
                
</x:Array>
            
</ListBox.ItemsSource>
        
</ListBox>
    
</Grid>
</Page>

2.
Declare inline code in Xaml:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
           xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml" 
           x:Class
="MyPage">
  
<x:Code>
    
<![CDATA[
      private void ButtonClickEventHandler(Object sender, RoutedEventArgs e)
      {
          MessageBox.Show("Hello Xaml!");
      }
    
]]>
  
</x:Code>
  
<Grid>
    
<Button Width="200" Height="60" Content="Click Me" Click="ButtonClickEventHandler"/>
  
</Grid>
</Page>

    Note that, when specifying inline code in xaml, you also need to specify the x:Class and the Xaml should be compiled before getting execution, which means that XamlReader.Load() method cannot intepret the xaml which contains inline code.