У меня есть следующий XAML:
<StackPanel>
<Label Target="{Binding ElementName=txtSearch}" Content="_Search:" />
<TextBox x:Name="txtSearch" />
</StackPanel>
У меня есть метод расширения, который принимает параметр UIElement, например:
static public class MyExtensionMethods
{
static public string GetLabelText(this UIElement element)
{
}
}
Все, что я хочу сделать внутри метода GetLabelText, - это определить содержимое метки (если оно есть), которое нацелено на переданный элемент UIElement, и вернуть текст. Например, следующий код вернет «_Search:»:
string labelText = txtSearch.GetLabelText();
Я слышал, что вы можете сделать это с помощью AutomationPeers, но у меня пока не было большого знакомства с функциями UIAutomation, и я не могу получить ничего, кроме нулевых значений от вызовов GetLabeledBy на любом из примеров автоматизации Я обнаружил. Любой ответ, который работает, был бы наиболее полезным, но я бы предпочел не делать ничего дополнительного в моем XAML, кроме того, что вы уже видите здесь.
Есть идеи?