相关文章推荐
<ctrl:uiPopup x:Name="canvas" VerticalOffset="-410" IsOpen="True" AllowsTransparency="True" PopupAnimation="Fade">
    <Canvas  Height="410" Width="548">
        <Image x:Name="PanelLeft" Height="410" Width="45" Canvas.Left="0"></Image>
        <Image x:Name="PanelTop" Height="45" Width="548" Canvas.Top="0"></Image>
        <Image x:Name="PanelRight" Height="410" Width="45" Canvas.Right="0"></Image>
        <Image x:Name="PanelBottom" Height="45" Width="548" Canvas.Bottom="0"></Image>
        <Image x:Name="PanelPlus" Height="100" Width="100" Panel.ZIndex="1"></Image>
    </Canvas>
</ctrl:uiPopup>
 

ctrl:uiPopup控件,参考: 自定义WPF Popup控件  

//注册移动事件
PanelPlus.MouseLeftButtonDown += rectOne_MouseLeftButtonDown;
PanelPlus.MouseLeftButtonUp += rectOne_MouseLeftButtonUp;
PanelPlus.MouseMove += rectOne_MouseMove;
        var cLeft = e.GetPosition(canvas).X - spanLeft;
        var cTop = e.GetPosition(canvas).Y - spanTop;
        //设置矩形的位置
        Canvas.SetLeft(PanelPlus, cLeft);
        Canvas.SetTop(PanelPlus, cTop);
//鼠标松开
private void rectOne_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    //释放鼠标捕获
    PanelPlus.ReleaseMouseCapture();
    enableMove = false;
//鼠标按下
private void rectOne_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    var y = Convert.ToDouble(e.GetPosition(canvas).Y);
    y = Utils.IsNumber(y) ? y : 0;
    var x = Convert.ToDouble(e.GetPosition(canvas).X);
    x = Utils.IsNumber(x) ? x : 0;
    //创建鼠标捕获
    Mouse.Capture(PanelPlus);
    double l = Convert.ToDouble(Canvas.GetLeft(PanelPlus));
    l = Utils.IsNumber(l) ? l : 0;
    double t = Convert.ToDouble(Canvas.GetTop(PanelPlus));
    t = Utils.IsNumber(t) ? t : 0;
    spanLeft = x - l;
    spanTop = y - t;
    enableMove = true;
        if (str == null) return false;
        ASCIIEncoding ascii = new ASCIIEncoding();
        byte[] bytestr = ascii.GetBytes(str.ToString());
        foreach (byte c in bytestr)
            if (c < 48 || c > 57) 
                return false;
        return true;
                    项目案例:WPF使用WindowsFormsHost播放视频,视频上显示边框、字幕等特效;难点问题1、WindowsFormsHost不支持背景透明;2、WPFPanel.ZIndex无效,WindowsFormsHost更优先;3、使用Show打开两个窗口,数据同步延时解决方案:使用Popup,解决最顶层、解决背景透明使用Canvas,解决元素拖拽XA...
				
1.添加System.Windows.FormsWindowsFormsIntegration引用 在引用中分别添加System.Windows.FormsWindowsFormsIntegration对象,如下图。 2.在XAML中增加引用对象的System.Windows.Forms的引用 引用命名空间设置为wf(xmlns:wf="clr-namespace:System.Window...
由于项目需求需要用到透明控件。但是,winform项目的控件透明都是将父控件的图像绘制成子控件的背景来实现的,这种透明存在很大的问题,不合格。 然后,我想到wpf透明这块做的比较好,想是不是可以在winform中使用wpf控件来实现,结果发现还是走不通,由于elementhost控件是winform中的控件,而wpf控件必须要用它来承载才能在winform中实现,不合格。 最后,百度发现了...
目录介绍问题方案WindowsFormHost黑色不透明 与 窗口颜色叠加WindowsFormHost黑色 不透明 与 半透明窗口颜色不叠加WindowsFormHost 下的Winform控件半透明WindowsFormHost下的Winform控件半透明反差效果闪烁总结 在WPF中,如果你需要在WPF中使用Winform控件,你将需要使用WindowsFormsHost作为宿主,具体的原理是,WindowsFormsHost在当前的位置以及尺寸,在占用一块区域叠加Winform控件。这里具体可以
WPF中想放置WinForm的控件时可通过WindowsFormsHost来承载WinForm控件,从而使其显示在WPF界面中。 通过这种方式放置的控件一直会显示在界面的最顶层,目前还没有办法将其放在WPF控件下面,此处有相关问题文章。 通过将WindowsFormsHost的Background设置为Transparent可透明显示出WindowsFormsHost底层的控件,但是设置为T...
可以使用Grid的Opacity属性来设置透明度,取值范围为到1之间,表示完全透明,1表示完全不透明。例如,设置Grid的透明度为.5,可以使用以下代码: <Grid Opacity=".5"> <!-- Grid的内容 --> </Grid>
 
推荐文章