我定义了一个类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应该怎么写?
非常感谢!

解决方案 »

  1.   

    下面代码不知道可以不?没经过测试,但理论上应该可行。<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>
      

  2.   

    哦,就是说不是直接绑定的时候需要通过converter来转换是吧,非常感谢。
      

  3.   

    一个简单绑定,根本用不着Convert来转化
      

  4.   

    如果实现上边的2/3这样的绑定也不需要converter么?