我有一个usercontrol,其中包含一个椭圆内的画布。我在另一个窗口中使用此控件,当我设置背景颜色时,我只想更改椭圆的背景。如何在不更改画布(父)背景颜色的情况下更改椭圆(子)背景?如何更改子控件的背景颜色xaml
1
A
回答
2
1.将DependencyProperty
添加到您的MyUserControl
的代码隐藏中。
注意Register
方法的第三个参数是无论Type
名字是你UserControl
public Brush EllipseFill
{
get { return (Brush)GetValue(EllipseFillProperty); }
set { SetValue(EllipseFillProperty, value); }
}
public static readonly DependencyProperty EllipseFillProperty =
DependencyProperty.Register("EllipseFill", typeof(Brush), typeof(MyUserControl), new PropertyMetadata(null));
2.加入的两个主Window
XAML文件的引用和UserControl
的命名空间其中MyUserControl
定义:
xmlns:local="clr-namespace:WpfApplication1"
3.将Ellipse
的Fill
属性绑定到在MyUserControl
上定义的依赖项属性。
请注意使用MyUserControl
参数的AncestorType
RelativeSource
绑定。
<Viewbox>
<Canvas Width="100" Height="100">
<Ellipse Width="50"
Height="20"
Canvas.Top="50"
Canvas.Left="50"
Fill="{Binding Path=EllipseFill,
RelativeSource= {RelativeSource Mode=FindAncestor,
AncestorType={x:Type local:MyUserControl}}}"
/>
<Rectangle Width="20"
Height="40"
Canvas.Top="10"
Canvas.Left="10"
Fill="Blue"
/>
</Canvas>
</Viewbox>
4.设置在主Window
<local:MyUserControl EllipseFill="Red"/>
相关问题
- 1. 如何更改页面的背景颜色,Windows Phone 8.1 C#XAML
- 2. 更改子类CStatic控件的背景颜色
- 3. 如何更改ASP.NET图表控件的背景颜色?
- 4. 如何更改AjaxControlToolkit HtmlEditorExtender控件的背景颜色?
- 5. 如何更改MFC动画控件的背景颜色
- 6. 如何更改gnuplot的背景颜色?
- 7. 如何更改PopupMenu背景的颜色
- 8. 如何更改SFSafariViewController的背景颜色?
- 9. 如何更改ListViewItem的背景颜色?
- 10. 如何更改Radscheduler的背景颜色
- 11. 如何更改apDiv的背景颜色?
- 12. 如何更改NSPopupButton的背景颜色?
- 13. 如何更改ggvis的背景颜色?
- 14. 如何更改JOptionPane的背景颜色?
- 15. 如何更改editText的背景颜色?
- 16. 如何更改GtkTextView的背景颜色?
- 17. 如何更改JLabel的背景颜色?
- 18. 如何更改TextBox的背景颜色?
- 19. 如何更改gtk.MenuItem()的背景颜色
- 20. 如何更改JFrame的背景颜色
- 21. 如何更改fusionchart的背景颜色?
- 22. 如何更改RawTurtle的背景颜色
- 23. 如何更改tr的背景颜色
- 24. 根据控件的背景颜色更改控件的文本颜色
- 25. 子类NSView更改背景颜色
- 26. wp7更改控件的背景颜色禁用控件
- 27. 如何从黑色背景更改背景颜色?
- 28. 更改背景颜色3
- 29. jqueryMobile更改背景颜色
- 30. 更改背景颜色tabhost
的 。在xaml中设置背景颜色时如何在不更改画布背景的情况下更改椭圆背景。背景=“红色” –
Prathap
EllipseFill
财产上MyUserControl
我在画布上多了一个控制。您可以将它全部放入ContentControl样式模板中并将模板的Ellipse填充绑定到模板,因此当您使用它时,它只会是一行,您只需将属性设置在任何位置用它。这也消除了重复的代码。 –
坚持。为什么不 work? (我添加了一些尺寸进行测试)。 –
sous2817