Ich habe eine Leinwand in einem itemControl und für die Datenvorlage verwende ich Ellipsen. Die Position jeder Ellipse repräsentiert eine Tageszeit von 6 bis 23 Uhr. Ich binde diesen Wert basierend auf der Größe der Arbeitsfläche und der Zeit, die der Ellipse zugewiesen wird. Das Ellipsenoberteil bewegt sich überhaupt nicht in der Leinwand. Ich habe versucht, die Bindung zu entfernen und einen harten Wert zu verwenden, und es ist immer noch an der gleichen Stelle.Canvas.Top nicht rendern
Hier ist die XAML für den Container
<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>
Hier ist der Konverter, die ich glaube nicht, das Problem gegeben, dass es zu entfernen
Beliebigpublic 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();
}
}
nicht die Position der Ellipse bewegen Hilfe würde geschätzt werden
Eine Sache, die ich sofort bin zu bemerken ist, dass Sie 'Canvas.Top = "Canvas.Top ="{Binding' haben. Ich denke, das sollte nur 'Canvas.Top =" {Binding "sein. – oltman
Ich habe diesen Bug behoben und er macht immer noch das Gleiche. Ich habe versucht, auf eine fest codierte Nummer umzuschalten und das funktioniert immer noch nicht. – joshwl2003