我是WPF的新手,我想設置孩子相對於父控件的邊距,而不是樹中的前一個孩子。我正在使用IValueConverter來轉換邊距。將孩子鎖定到父控件
<Grid Background="#668" Margin="1">
<StackPanel Grid.Row="1" Orientation="Horizontal">
<ItemsControl ItemsSource="{Binding KeyFrames}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Width="{Binding Path=ScaledLength}" HorizontalAlignment="Left"
Margin="{Binding Path=ScaledStartOffset, Converter={StaticResource ClipLeftMarginConverter} }">
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</StackPanel>
</Grid>
我的IValueConverter是
public class ClipRegionMarginConverter : DependencyObject, IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double inputValue = (double)value;
return new Thickness(inputValue, 0, 0, 0);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new Exception("The method or operation is not implemented.");
}
}
我想知道如果有一個不同的控制,我可以使用,使得按鈕保證金是相對於網格而不是一個按鈕。或者,如果您發現我可以對IValueConverter進行更改,以解決同樣的問題,那我也很好。