绑定背景颜色不起作用

时间:2018-05-22 11:14:06

标签: c# wpf xaml data-binding

我试图通过绑定设置某些图标的背景颜色,但我可能遗漏了一些东西并且不知道是什么。

xaml:

<!DOCTYPE html>

<html>

<div>
 <form>
   <input type="text" name="time" id="time" style="width: 40px;">
   <br><br><input type="button" class="action" onClick="writeFormData(); 
   alert('submitted')" value="Submit"/>
 </form>
</div>

<script>
  var timeInput = document.getElementById("time");
  var timehtml = time;
  timeInput.value = timehtml;
</script>

<script type="text/javascript">
       function writeFormData() {
           google.script.run.processForm(document.forms[0]);
       }
</script>

</html>

代码背后:

<materialDesign:PackIcon x:Name="SaveIcon" Kind="ContentSave" 
                         Height="25" Width="25" Background="{Binding Background}" />

但这不会做任何事,我的意思是没有背景颜色。

2 个答案:

答案 0 :(得分:1)

将Background属性更改为

private SolidColorBrush _background;
public SolidColorBrush Background
{
    get
    {
        return _background;
    }

    set
    {
        _background = value;
        OnPropertyChanged();
    }
}

并改变     Background = "Red" 至     Background = new SolidColorBrush(Colors.Red);

答案 1 :(得分:1)

Control类中已存在Brush Background属性。您的string Background属性隐藏了基本属性,但绑定Background="{Binding Background}"仍然会获取基本属性。

您可以完全删除string Background并使用Brush Background, 或者重命名你的新房产。

public Page6()
{
    InitializeComponent();
    DataContext = this;
    BackColor = "Red";
}

private string _background;
public string BackColor
{
        get
        {
            return _background;
        }

        set
        {
            _background = value;
            OnPropertyChanged();
        }
}

更改装订:

Background="{Binding BackColor}"