সাধারণত, আপনি আপনার দৃশ্যের জন্য উপযুক্ত একটি বিল্ট-ইন লেআউট নিয়ন্ত্রণ ব্যবহার করবেন (যেমন আপনি পিতামাতার সাথে সম্পর্কিত যদি স্কেলিং চান তবে পিতামাতার হিসাবে গ্রিড ব্যবহার করুন)। যদি আপনি এটি একটি স্বেচ্ছাসেবক অভিভাবক উপাদান দিয়ে করতে চান, আপনি এটি করতে একটি ValueConverter তৈরি করতে পারেন, তবে এটি সম্ভবত আপনি চান তেমন পরিষ্কার হবে না। তবে আপনার যদি একেবারেই প্রয়োজন হয় তবে আপনি এটির মতো কিছু করতে পারেন:
public class PercentageConverter : IValueConverter
{
public object Convert(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
return System.Convert.ToDouble(value) *
System.Convert.ToDouble(parameter);
}
public object ConvertBack(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
কোনটি তার পিতামাতার ক্যানভাসের প্রস্থের 10% প্রস্থের চাইল্ড টেক্সটবক্স পেতে এটির মতো ব্যবহার করা যেতে পারে:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<local:PercentageConverter x:Key="PercentageConverter"/>
</Window.Resources>
<Canvas x:Name="canvas">
<TextBlock Text="Hello"
Background="Red"
Width="{Binding
Converter={StaticResource PercentageConverter},
ElementName=canvas,
Path=ActualWidth,
ConverterParameter=0.1}"/>
</Canvas>
</Window>