日期:2014-05-18  浏览次数:20789 次

wpf 绑定问题
我定义了一个类CardTest,继承了UserControl,.cs部分的定义如下:
  public partial class Card : UserControl
  {
  public Card()
  {
  InitializeComponent();
  }
  public int W { set; get; }
  public int H { set; get; }
  }
XAML定义如下:
<UserControl x:Class="CardTest.Card"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Height="300" Width="300">
  <Grid x:Name="GridMain">
  <Grid x:Name="GridInside">
   
  </Grid>
  </Grid>
</UserControl>

我想在XAML部分实现对GridInside的Width和Height针对W和H的绑定。
实现GridInside.Width = W * 2 / 3;
GridInside.Height = H * 2 / 3;
请问在XAML应该怎么写?
非常感谢!

------解决方案--------------------
下面代码不知道可以不?没经过测试,但理论上应该可行。
XML code

<UserControl x:Class="CardTest.Card"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Height="300" Width="300" x:Name="control" xmlns:local="clr-namespace:CardTest">
<UserControl.Resources>
<local:Converter1 x:key="converter1"/>
<local:Converter2 x:key="converter2"/>
</UserControl.Resources>
  <Grid x:Name="GridMain">
  <Grid x:Name="GridInside" Width="{Binding ElementName=control,Path=W,Converter={StaticResource converter1}}" Height="{Binding ElementName=control,Path=H,Converter={StaticResource converter2}}">
    
  </Grid>
  </Grid>
</UserControl>