If you now the name of the ToggleButton then you can use following code:
var uiElement = (ComboBox)sender;
var toggleButton = uiElement.Template.FindName("<Your ToggleButton Name Here>",uiElement) as ToggleButton;
if(toggleButton!=null)
{
// Your code goes here.
}
If you don't know the name of the ToggleButton then in that case the only option is to travers through visual tree and find an element of type toggle button. Sample code below:
internal static List<T> FindVisualChild<T>(this DependencyObject depObj) where T : DependencyObject
{
if (depObj != null)
{
List<T> childItems = null;
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
if (childItems == null)
childItems = new List<T>();
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
childItems.Add((T)child);
}
var recursiveChildItems = FindVisualChild<T>(child);
if (recursiveChildItems != null && recursiveChildItems.Count > 0)
childItems.AddRange(recursiveChildItems);
}
return childItems;
}
return null;
}
Above method is an extension to DependencyObject and will return all the elements of the specified type from the visual tree. If you want only first element of specified type then you can make slight changes in the method and can break the loop when you get the first element of the specified type and return it.