我有一个画布在itemControl和我使用省略号数据模板。每个椭圆的位置表示一天中早上6点至晚上11点的时间。我根据画布的大小和分配给椭圆的时间落在哪里来绑定该值。 ellispse顶部并没有在画布中移动。我试图删除绑定并使用硬性值,它仍然在同一个地方。了Canvas.Top不渲染
这里是容器
<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>
在这里,XAML是我不认为转换器是因为删除它不动椭圆
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();
}
}
任何位置的问题帮助将不胜感激
有一件事我马上注意到的是,你有'Canvas.Top = “Canvas.Top =”{Binding'。我认为这应该只是'Canvas.Top =“{Binding'。 – oltman 2012-04-10 21:49:38
我修正了这个错误,它仍然在做同样的事情我已经尝试切换回硬编码的号码,这仍然不起作用 – joshwl2003 2012-04-11 22:10:43