我想知道如果在XAML中未触摸视图模型,我可以执行类似this或this的操作,但使用其他属性的比例。WPF将属性的值设置为另一个属性的值的比率
我有内部2个椭圆一个按钮控制和我想要的椭圆中的一个的余量,这取决于其它的高度而变化。
因此,像:
<Ellipse Margin=.2*"{Binding ElementName=OtherEllipse, Path=Height}"/>
我想知道如果在XAML中未触摸视图模型,我可以执行类似this或this的操作,但使用其他属性的比例。WPF将属性的值设置为另一个属性的值的比率
我有内部2个椭圆一个按钮控制和我想要的椭圆中的一个的余量,这取决于其它的高度而变化。
因此,像:
<Ellipse Margin=.2*"{Binding ElementName=OtherEllipse, Path=Height}"/>
MainWindow.xaml
<Window x:Class="MultiBindingConverterDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:MultiBindingConverterDemo"
mc:Ignorable="d"
Title="MainWindow" Height="600" Width="800">
<StackPanel>
<StackPanel.Resources>
<local:MultiplyValueConverter x:Key="MultiplyValueConverter"/>
</StackPanel.Resources>
<Ellipse x:Name="OtherEllipse" Width="100" Height="50" Fill="Red"/>
<Ellipse Width="50" Height="50" Fill="Blue"
Margin="{Binding Path=Height,
ElementName=OtherEllipse,
Converter={StaticResource MultiplyValueConverter},
ConverterParameter=0.2}">
</Ellipse>
</StackPanel>
MainWindow.xaml.cs
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
namespace MultiBindingConverterDemo
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
public class MultiplyValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double height = (double)value;
double multiplier = double.Parse((string)parameter);
return new Thickness(height * multiplier);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
你可以,你需要的IValueConverter编写自定义的。 http://www.codeproject.com/Tips/868163/IValueConverter-Example-and-Usage-in-WPF
如果你需要传递一个参数:Passing values to IValueConverter
谢谢!!我似乎仍然无法完成它的工作,可能与它处于一种风格有关,但我正在努力! – azulBonnet