更改用户控件的颜色

时间:2015-04-26 12:08:07

标签: wpf xaml user-controls windows-phone windows-store-apps

可以直接在我的视图中更改用户控件的颜色吗?

if ! file_content.valid_encoding?
  s = file_content.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8')
  s.gsub(/dr/i,'med')
end

我尝试过使用"前景"财产,但它不起作用。

2 个答案:

答案 0 :(得分:1)

如果控件中的用户控件(例如文本框)中有子控件,则可以将其前景属性绑定到控件的前景。 Examlpe:

<local:MyControl>
  <TextBox Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type local:MyControl}}}"/>
  <TextBlock Foreground="the same binding"/>
  ...
</local:MyControl>

如果用户控件没有实现任何基类型类(例如FrameworkElement或UserControl),那么您必须创建Foreground属性,如果您也想使用wpf绑定,还要使用它的decency属性。 MyControl.xaml.cs中的代码:

public static readonly DepencyProperty ForegroundProperty = DepencyProperty.Register("Foreground", typeof(Brush), typeof(MyControl));
public Brush Foreground {
  get { return (Brush)GetValue(ForegroundProperty); }
  set { SetValue(ForegroundProperty, value); }
}

在第二种情况下,您还应该实现INotifyPropertyChanged接口来更新wpf控件。

答案 1 :(得分:0)

您可以简单地更改<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" 的任何属性。例如:

UserControl

为了完成这项工作,在控件中处理这些属性(或其他自定义属性)是必要的。 <local:MyControl Foreground="Red" Background="#FF008080"/> Background会自动应用于控件。但您也可以将其他控件属性绑定到这些颜色/画笔属性。

Foreground