我希望将一个比例转换绑定到一个转换器,传递
这是我想要做的事情:
这个问题是这段代码无法编译:
ActualWidth
或ActualHeight
参数。这是我想要做的事情:
<Canvas x:Name="Canevas">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform
ScaleX="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UIElement}},
Path=ActualWidth, Mode=OneWay,
Converter={StaticResource ScaleConverter},
ConverterParameter={Binding Path=ActualWidth}"
ScaleY="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UIElement}},
Path=ActualHeight, Mode=OneWay,
Converter={StaticResource ScaleConverter},
ConverterParameter={Binding Path=ActualHeight}}"
/>
</TransformGroup>
</Canvas.RenderTransform>
<Ellipse Canvas.Left="47" Canvas.Top="48" Height="155"
Name="ellipse1" Stroke="Black" Width="174" Fill="#FF00C6C3" />
这个问题是这段代码无法编译:
ConverterParameter={Binding Path=ActualHeight}
我希望知道如何将这些属性作为参数移动到我的转换器中?是否可以完全在 Xaml 中解决?
非常感谢您的帮助!
转换器源代码:
public class ScaleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
double v = (double)value;
var actualSize = (double)parameter; //ActualWidth, ActualHeight
var vScale = v * (1 + (v / actualSize));
return vScale;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}