Hallo,
ich bin gerade dabei den Ursprungspunkt eines canvas durch Binding immer in der Mitte zu halten.
Leider funktioniert mein Code nicht:
<Canvas x:Name="canvas_spline" HorizontalAlignment="Left" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5">
<Line X1="0" X2="100" Y1="0" Y2="0" Stroke="Black" StrokeThickness="2"/>
<Canvas.RenderTransform>
<TransformGroup>
<TranslateTransform>
<TranslateTransform.X>
<MultiBinding Converter="{StaticResource converter}">
<Binding ElementName="canvas_spline" Path="ActualWidth"/>
</MultiBinding>
</TranslateTransform.X>
<TranslateTransform.Y>
<MultiBinding Converter="{StaticResource converter}">
<Binding ElementName="canvas_spline" Path="ActualHeight"/>
</MultiBinding>
</TranslateTransform.Y>
</TranslateTransform>
</TransformGroup>
</Canvas.RenderTransform>
</Canvas>
Zusätzlich habe ich noch folgende Converter Klasse:
public class TranslateTransformConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double v = (double)values[0];
double result = v / 2;
return result;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Was mache ich falsch?
Hi Let it Burn,
Leider funktioniert mein Code nicht
Das ist leider keine hilfreiche Fehlerbeschreibung. Was funktioniert nicht? Welche Fehlermeldungen gibt es? Werden Binding-Fehler im Ausgabefenster angezeigt? Wird der Converter aufgerufen? Wozu brauchst du überhaupt MultiBinding?
Christian
Weeks of programming can save you hours of planning
Also der Ursprungspunkt bleibt links oben und es gibt keine Fehlermeldung. Der Converter wird durchlaufen.
Das MultiValueBinding deshalb, weil ich das so immer in Beispielen gesehen habe und ich außerdem noch eine Möglichkeit zum verschieben des Canvas Inhalts einbauen möchte.