2012-04-05 91 views
0

我想從後面的代碼中將DependencyObject添加到控件中。我在網上搜索和搜索如何做到這一點,絕對沒有成功。 DependencyObject有一個DependencyProperty。我也想從代碼隱藏中設置這個屬性。將DependencyObject添加到代碼隱藏控件中

製圖:ChartBehaviors直接從DependencyObject繼承。這是我自己寫的一堂課。圖表控件是第三方控件。

圖表:ChartBehaviors.FloatingTooltip是DependencyProperty。這也是我自己寫的一堂課。

下面是它在XAML中的外觀。我想在後面的代碼中這樣做,以便打開和關閉「行爲」。

<charting:Chart> 
    <charting:ChartBehaviors.FloatingTooltip> 
     <charting:FloatingTooltipBehavior 
     TooltipTemplate="{StaticResource tooltipTemplate}" /> 
    </charting:ChartBehaviors.FloatingTooltip> 
</charting:Chart> 

回答

0

您可以在對象上使用SetValue方法(假設您爲圖表指定chart1的標識)。

var behave = new FloatingTooltipBehavior(); 
chart1.SetValue(ChartBehaviors.FloatingTooltipProperty, behave); 

另一種解決方案是隻是一個Enabled屬性添加到您的行爲,然後設置,從後面的代碼。

+0

我使用前者,它工作得很好。謝謝! – stuckintheshuck 2012-04-06 02:04:58

0

好了,你基本上實例必要的依賴對象,並使用適當的方法將其添加到控制。例如,要TextBlock的添加到StackPanel的,你寫這樣的:

TextBlock txtMyText = new TextBlock(); 
stackPanel.Children.Add(txtMyText); 

如果你想某些行爲添加到一個圖表,你應該只是讓你的圖表對象的代碼並尋找財產像行爲或什麼的。然後您可以指定行爲(如果它是一個行爲只),或添加它,就象到的StackPanel:

Chart myChart; 
myChart.Behavior = new FloatingTooltipBehavior(); 

很難說出確切的語法不知道該組件。

+0

圖表是第三方控件,類中沒有用於添加DependencyObjects的機制。它只是一個自定義的DependencyObject。請參閱:http://msdn.microsoft.com/en-us/library/system.windows.dependencyobject(v=vs.95).aspx – stuckintheshuck 2012-04-05 21:07:35

相關問題