我试图将一些XAML转换为C#代码。这是xaml:
ComboBoxInstance.TextBlock.SetBinding(TextBlock.ForegroundProperty, "DesiredForegroundBrush");
我想在C#代码中做同样的事情,但我对如何访问TextBlock感到茫然。
我尝试了以下内容:
var childrenCount = VisualTreeHelper.GetChildrenCount(ComboBoxInstance);
但是C#代码无法访问TextBlock。
我也尝试过访问组合框的子项,但GetChildrenCount返回0:
//======= Spring Buffer ======//
...
glBindBuffer(GL_ARRAY_BUFFER, mSpringBuffer);
...
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, VERTEX_BYTE_SIZE, 0);
//======= Mass Buffer ======//
...
glBindBuffer(GL_ARRAY_BUFFER, mMassBuffer);
...
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, VERTEX_BYTE_SIZE, 0);
我做了一些网络搜索,但我发现的只是关于如何将组合框绑定到TextBox的问题。
我觉得必须有一个简单的方法来做到这一点。任何帮助将不胜感激!
更新
我找到了这篇文章:
How to I access an attached property in code behind?
但是这只显示如何直接在后面的代码中分配属性,而不是在其上设置绑定。
答案 0 :(得分:2)
使用ComboBox.ForegroundProperty
绑定前景色。你为什么想要文本框?
答案 1 :(得分:0)
每个控制源自" Control" class将具有Foreground属性,它是一个依赖属性,可以绑定到任何 Brush 值。要更改任何控制前景的值,我们不需要挖掘属性。
<ComboBox Background="{Binding ForegroundColorBrush}"/>
和组合框前景色将根据绑定而改变。