public class SfChartExt : SfChart
{
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
var dockPanel = GetTemplateChild("Part_DockPanel") as ChartDockPanel;
if (dockPanel != null)
(dockPanel.Children[0] as ContentPresenter).Margin = new Thickness(0);
}
} |
<local:SfChartExt x:Name="chart" Grid.Row="0" Header="I'm a Header">
<local:SfChartExt.PrimaryAxis>
<syncfusion:NumericalAxis/>
</local:SfChartExt.PrimaryAxis>
. . .
</local:SfChartExt > |
private void Button_Click(object sender, RoutedEventArgs e)
{
PropertyInfo propertyinfo = typeof(SfChart).GetProperty("InternalCanvas", BindingFlags.NonPublic | BindingFlags.Instance);
if (propertyinfo != null)
{
var panel = (Panel)propertyinfo.GetValue(chart);
var seriesPos = panel.TransformToVisual(chart).Transform(new Point(0, 0));
Debug.WriteLine($"SeriesPosition= {seriesPos}");
Debug.WriteLine($"TopPosition= {seriesPos.Y}");
}
}
|