小编Chr*_*ris的帖子

一个既有模态又有非模态的窗口

我想创建一个WPF窗口,其行为作为模式对话框,同时促进同一应用程序的某些其他窗口上的选定操作.这种行为的一个示例可以在Adobe Photoshop中看到,它提供了几个对话框,允许用户使用吸管工具从图像中进行选择,同时禁用几乎所有其他应用程序功能.

我猜测前进的方法是创建一个非模态的,始终在线的对话,并以编程方式禁用那些不适用于对话的应用程序功能.有没有一种简单的方法来实现WPF?或许我可以采用一种设计模式.

wpf modal-dialog non-modal

6
推荐指数
1
解决办法
383
查看次数

解决实现ISerializable的对象的循环引用

我正在编写自己的IFormatter实现,我想不出一种方法来解决两个实现ISerializable的类型之间的循环引用.

这是通常的模式:

[Serializable]
class Foo : ISerializable
{
    private Bar m_bar;

    public Foo(Bar bar)
    {
        m_bar = bar;
        m_bar.Foo = this;
    }

    public Bar Bar
    {
        get { return m_bar; }
    }

    protected Foo(SerializationInfo info, StreamingContext context)
    {
        m_bar = (Bar)info.GetValue("1", typeof(Bar));
    }

    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        info.AddValue("1", m_bar);
    }
}

[Serializable]
class Bar : ISerializable
{
    private Foo m_foo;

    public Foo Foo
    {
        get { return m_foo; }
        set { m_foo = value; }
    }

    public …
Run Code Online (Sandbox Code Playgroud)

.net serialization circular-reference iserializable

3
推荐指数
1
解决办法
1299
查看次数