我在 itemControl 中有一个画布,对于我使用省略号的数据模板。每个椭圆的位置代表一天中早上 6 点到晚上 11 点之间的时间。我根据画布的大小以及分配给椭圆的时间所在的位置绑定该值。椭圆顶部根本没有在画布中移动。我试图删除绑定并使用硬值,它仍然在同一个地方。
这是容器的 XAML
<ItemsControl Grid.Column="1" ItemsSource="{Binding AngerData}" VerticalAlignment="Stretch" Canvas.ZIndex="1">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas VerticalAlignment="Stretch"></Canvas>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Ellipse Height="10" Width="10" Stroke="White" StrokeThickness="1"
Canvas.Top="{Binding Top, Converter={StaticResource ResourceKey=ellipsePositionConverter}, ConverterParameter=Month}" >"
Fill="{Binding AngerRating, Converter={StaticResource angerRatingConverter}}"
Canvas.ZIndex="100">
</Ellipse>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
这是转换器,我认为这不是问题,因为移除它不会移动椭圆的位置
public class CalendarDayEllipsePositionConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double gridPosition = 0;
if (parameter.ToString().Equals("Month", StringComparison.InvariantCultureIgnoreCase))
{
gridPosition = double.Parse(value.ToString()) * 110;
}
return gridPosition;
}
public object ConvertBack(object value, Type targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
任何帮助,将不胜感激