在silverlight的某個頁面中,如果你想讓控件A的寬度總是隨着控件B的寬度變化,應該怎么辦呢,答案就是元素屬性綁定.
以下內容來自於http://silverlightchina.net/html/tips/2011/1225/12806.html
View Code
1 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 2 <Grid.RowDefinitions> 3 <RowDefinition Height="*" /> 4 <RowDefinition Height="*" /> 5 <RowDefinition Height="*" /> 6 </Grid.RowDefinitions> 7 <Slider Name="slider" 8 Value="90" 9 Grid.Row="0" 10 Maximum="180" 11 Margin="24" /> 12 <TextBlock Name="txtblk" 13 Text="{Binding ElementName=slider, Path=Value}" 14 Grid.Row="1" 15 FontSize="48" 16 HorizontalAlignment="Center" 17 VerticalAlignment="Center" />
注意上述代碼中的TextBock的屬性Text綁定代碼,我們也可以用一下形式精簡:Text=”{Binding Value,ElementName=slider}”。
另外還可以用下述另類的代碼:Text=“{Binding ElementName=ContentPanel,Path=Children[0],Value}”。
值得注意的是可以不用該綁定語法,用屬性元素語法也能辦到:
View Code
1 <TextBlock Name="txtblk" 2 Grid.Row="1" 3 FontSize="48" 4 HorizontalAlignment="Center" 5 VerticalAlignment="Center" > 6 <TextBlock.Text> 7 <Binding ElementName="slider" Path="Value"></Binding> 8 </TextBlock.Text> 9 </TextBlock>
Silverlight數據綁定也可以用C#代碼,當然也是易忽視或用到少的方式,但也要引起重視地!
1 Binding binding = new Binding(); 2 binding.ElementName = "slider"; 3 binding.Path = new PropertyPath("Value"); 4 //1.this.txtblk.SetBinding(TextBlock.TextProperty,binding); 5 //2.BindingOperations.SetBinding(this.txtblk,TextBlock.TextProperty,binding);
上述代碼將名為slider的Silder元素的屬性Value跟名為txtblk的TextBlock元素的屬性Text綁定在了一起.
