csharp 发表于 2015-12-29 15:55:52

用程序控制显示隐藏的ModelessWindows对话框

本帖最后由 csharp 于 2015-12-29 15:57 编辑

使用 Palette 做载体很容易,试了下用 WPF Windows 做 Modeless 对话框
定义 xaml

<Window x:Name="Hknife" x:Class="AutoCAD_CSharp_plug_in2.UserControl1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             mc:Ignorable="d"
             d:DesignHeight="80" d:DesignWidth="120" ResizeMode="NoResize" Closing="Hknife_Closing" SizeToContent="WidthAndHeight">
    <Grid>
      <ComboBox x:Name="Input" HorizontalAlignment="Left" Height="20" Margin="10,10,0,0" VerticalAlignment="Top" Width="90" IsEditable="True"/>
    </Grid>
</Window>

定义事件
**** Hidden Message *****
定义两个测试 Lisp 函数
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.DatabaseServices;
using Application = Autodesk.AutoCAD.ApplicationServices.Core.Application;



namespace AutoCAD_CSharp_plug_in2
{
    public class MyCommands
    {
      private static UserControl1 _control1=null;
      
      
      public object MyWindows(ResultBuffer rb)
      {
            if (_control1 == null)
            {
                _control1 = new UserControl1();
                Application.ShowModelessWindow(_control1);
                return true;
            }
            else
            {
                if (_control1.IsVisible)
                {
                  _control1.Close();
                }
                else
                {
                  Application.ShowModelessWindow(_control1);
                }
            }
            return true;
      }

      
      public object MyWindowsGet(ResultBuffer rb)
      {
            if (_control1!=null && _control1.IsVisible)
            {
               string str= _control1.Input.Text;
                return str;
            }
            return false;
      }
    }
}

liuyj 发表于 2015-12-29 16:25:16

有没有例子和截图?

csharp 发表于 2015-12-29 17:29:00

liuyj 发表于 2015-12-29 16:25
有没有例子和截图?

这样效果

lhtfhc 发表于 2015-12-29 18:06:44

学习学习,好东西谢谢分享

lucas3 发表于 2015-12-29 18:44:52

csharp 发表于 2015-12-29 17:29
这样效果

还可做美观一点!

csharp 发表于 2015-12-29 18:48:27

本帖最后由 csharp 于 2015-12-29 18:49 编辑

lucas3 发表于 2015-12-29 18:44
还可做美观一点!

方法有了,WPF效果就靠你想象力
这是Windows10下默认

aeo 发表于 2016-1-4 10:22:28

mark

qiqiang2015 发表于 2016-2-1 16:05:52

回复看看啊啊啊啊啊

dnbcgrass 发表于 2016-2-3 22:39:33

学习学习!:lol

arwaihy 发表于 2017-8-8 15:57:04

布局一直用不好,看看这个方法行不行

wfch20000 发表于 2018-1-9 09:20:55

WPFyoudian gaoshen ya,xiaxialai xuexixia

xinlucky 发表于 2018-1-9 11:38:42

show me the code!

yjch 发表于 2018-1-9 11:49:34

好好学习天天向上,收藏了

红黑墨水 发表于 2018-3-4 08:43:24

谢谢啦,正在学习中

tiancao1001 发表于 2018-3-4 15:08:56

什么意思没看明白
页: [1] 2
查看完整版本: 用程序控制显示隐藏的ModelessWindows对话框