有没有办法双重缓冲共同控件?目前,当他们调整大小时,他们闪烁.很多.....
编辑:如果它有帮助,它是一组按钮控件和一些编辑控件,都位于选项卡控件的顶部.Tab控件重绘自身,然后按钮重绘自己.当按钮重绘时,它们会闪烁.
EDIT2:这是我遇到的问题的一个例子:http: //billy-oneal.com/Lobfuscator.exe
我正在开发一个自定义控件库,我坚持这个错误.谁能告诉我我错过了什么?
SolidGloss.cs:
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
namespace UXSDK
{
public class SolidGloss : Control
{
public SolidGloss()
: base()
{
DefaultStyleKey = typeof(SolidGloss);
//SolidGlossCorners_ConformToContainer();
}
Border SolidGloss_Container;
Border SolidGloss_Upper;
Border SolidGloss_Lower;
public override void OnApplyTemplate()
{
SolidGloss_Container = this.GetTemplateChild("SolidGloss_Container") as Border;
Debug.Assert(SolidGloss_Container != null, "SolidGloss_Container is null");
SolidGloss_Upper = this.GetTemplateChild("SolidGloss_Container") as Border;
Debug.Assert(SolidGloss_Container != null, "SolidGloss_Container is null");
SolidGloss_Lower = …Run Code Online (Sandbox Code Playgroud) 我在自定义控件上有一个依赖属性(Foreground),它继承自Control.当我加载控件时,我想查看用户是否已设置依赖项属性,或者在我为其设置值之前是否使用其默认值.这个问题有点复杂,这里是:
该控件位于用户添加到其项目中的自定义控件库中.当他们设置项目时,我可以让他们使用给定的x:key在app.xaml文件中添加一行,其中包含我在设置控件的默认值时读取的设置.但是,如果他们在代码或xaml中设置值,我不想使用此全局值设置值.以下是一些有助于想象我正在谈论的内容的案例:
用户从我的库中创建一个控件并将其放在他们的页面上.然后他们将前景设置为绿色.我希望该控件的前景值为绿色.
用户在app.xaml中添加一条特殊行,表示他们希望特定类型的所有控件都具有红色前景.我希望这种控件的前景值为红色.
用户在app.xaml中添加一条特殊行,表示他们希望特定类型的所有控件都具有红色前景.然后,他们将单个控件(在xaml中)的前景值设置为黄色.我希望那种类型的所有控件的前景值都是红色的,除了它们另外指定为黄色的那个.
加载控件时,我想读取依赖项属性以查看它们是否已设置值,或者它是否是样式中定义的默认值.如果它是默认值,我想从app.xaml文件中读取它们的特殊行,并将前景设置为该颜色.
user-controls controls dependency-properties silverlight-2.0 control-library
我正在使用C# windows窗体控件库程序来创建我自己的控件,代码如下:
public partial class MyControl : UserControl
{
public MyControl()
{
InitializeComponent();
}
private float mMinValue;
[Browsable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
[Category("Design") , DefaultValue(0.0)]
public float MinValue
{
get { return mMinValue; }
set { mMinValue = value; }
}
private float mMaxValue;
[Browsable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
[Category("Design") , DefaultValue(1.0)]
public float MaxValue
{
get { return mMaxValue; }
set { mMaxValue = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
程序运行时,MinValue和MaxValue的默认值都是0,那么如何正确设置默认值呢?