小编Dav*_*mer的帖子

1
推荐指数
2
解决办法
597
查看次数

WPF控制开发理念

OK,我想创建一个控件,就像是一个StackpanelTextBlock左边,是这样的:

图片

TextBlock需要被编辑.那么,问题是我需要继承谁来制作,因为不能从Stackpanel

c# wpf xaml user-controls wpf-controls

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

将事件转发到所有组件 JAVA

我不知道如何解决这个问题。我正在开发一个图形编辑器,可以在其中绘制圆弧(线)。我手动将弧组件的大小设置为 1000x1000,因此在拖放此弧时我不必更改它。然后我将所需尺寸的弧线绘制到该组件中。每个弧组件都安装了鼠标侦听器。问题是,只有最上面的圆弧组件才能获得鼠标消息。此外,我在 JPane 本身上安装了一个鼠标单击侦听器,但是最上层组件上的鼠标单击侦听器只是获取所有事件......描述这个问题有点困难,所以我将为您提供简单的图像

在此处输入图片说明

所以第一个解决方案是以某种方式将收到的消息转发到位于其下的组件,但是我不知道如何做到这一点,所以你有什么想法吗?

第二种解决方案是,不要为圆弧对象设置恒定尺寸,而是以某种方式旋转圆弧所在的矩形,我的意思是这样。 在此处输入图片说明

然而,仍然可能存在重叠问题。

那么,您对如何解决这个问题有什么想法吗?或者如果您有任何其他想法,如何解决这个问题,我很高兴,我只需要正确的弧线会对鼠标点击做出反应。

我不认为我的代码会以某种方式有所帮助,但它是

arcObject.setSize(1000, 1000); // !
Run Code Online (Sandbox Code Playgroud)

然后,在这个组件中,我画了一个圆弧

toX = o2.x - 24 * Math.cos(theta);
toY = o2.y - 24 * Math.sin(theta);
g2.draw(new Line2D.Double(toX, toY, o1.x, o1.y));
Run Code Online (Sandbox Code Playgroud)

java user-interface swing event-handling mouseevent

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

当鼠标不超过两个元素时,Wpf Reactive Extensions会做出反应

我正在尝试更多地了解反应性扩展,但我发现很难找到一个真实世界的例子,所以我可以训练自己.

我几天前发现自己写了一些ToggleButtonMouse Enter,Leave Checked Unchecked事件,现在我想知道我是否可以使用被动扩展来简化它.

这是目标:

给定a ToggleButton,当悬停并且未检查时,弹出窗口应该显示,如果鼠标没有超过按钮或弹出窗口,弹出窗口应该关闭

如果我按下切换按钮(选中),弹出窗口应保持打开状态,直到取消选中该按钮(忽略鼠标输入离开事件),之后鼠标悬停行为应再次启动.

如果弹出窗口外部关闭,则应自动取消选中切换按钮.(我知道这可以使用一些绑定和数据触发器实现,但我想练习我的反应式扩展逻辑)

现在我有以下内容:

    private void ToggleButton_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
    {
        if (!ToggleButton.IsChecked ?? false)
            Popup.IsOpen = true;
    }

    private void ToggleButton_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
    {
        if (!Popup.Child.IsMouseOver && !(TaskManagerTab.IsChecked ?? false))
        {
            Popup.IsOpen = false;
            return;
        }

        popup.Child.MouseLeave +=  Popup_MouseLeave;
    }

    void Popup_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
    {
        Popup.Child.MouseLeave -=  Popup_MouseLeave;

        if (!ToggleButton.IsMouseOver && !(ToggleButton.IsChecked ?? false))
        {
            Popup.IsOpen = false;
            return;
        }
    }

    private void ToggleButton_CheckedChanged(object sender, System.Windows.RoutedEventArgs e) …
Run Code Online (Sandbox Code Playgroud)

wpf mouseevent system.reactive

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

如何将UserControl加载到(WPF)窗口中的ContentPresenter中?

我有一个包含Viewbox的窗口.在那个Viewbox中,我想拥有一些我已经创建为UserControls的视图.我正在使用MVVM(模型视图 - 模型)设计模式.我在网上搜索了大约一个小时,我找不到任何解释如何使用a显示UserControl的示例或教程ContentPresenter.

wpf user-controls mvvm contentpresenter

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

旋转变换后不显示WPF图像

我想知道是否有人可以帮助我解决显示问题。我只想使用下面的代码允许顺时针旋转 90 度:

        RotateTransform rotateTransform = new RotateTransform();
        rotateTransform.CenterX = image1.Width / 2.0;
        rotateTransform.CenterY = image1.Height / 2.0;
         cW+= 90;

        rotateTransform.Angle = cW;

        TransformGroup transformGroup = new TransformGroup();
        transformGroup.Children.Add(rotateTransform);


        image1.RenderTransform = transformGroup;
Run Code Online (Sandbox Code Playgroud)

在 XAML 中,当我定义图像高度和宽度时,图像将旋转。但是,当设置为自动时,执行此代码后图像消失。为什么会发生这种情况,我该如何解决这个问题?任何帮助将不胜感激。

c# wpf height image width

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

在用户控件中获取工具提示以显示数据绑定文本并保持打开状态

我有一个用户控件,显示TextBox一个小帮助图标.

我的目标是ToolTip弹出一个弹出窗口,显示一些数据绑定文本,并在鼠标悬停在帮助图标上时保持打开状态.

因此,为此我在用户控件中创建了一个HelpText依赖项属性,允许我将帮助文本字符串绑定到用户控件.

所以,我的用户控件看起来像这样

<UserControl Name="textField" ...>
    <StackPanel Orientation="Horizontal">
        <TextBox Text="{Binding ElementName=textField,Path=Text}"/>
        <Image Source="{StaticResource Help.Icon}">
            <Image.ToolTip>
                <ToolTip Content="{Binding ElementName=textField,Path=HelpText}"/>
            </Image.ToolTip>
        </Image>
    </StackPanel>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

此代码确实显示了工具提示,但它是空的!此外,StaysOpen属性没有任何区别,因为工具提示在几秒钟后关闭.

有趣的是,当我直接在Image控件的ToolTip属性上设置相同的绑定时,绑定的文本会在工具提示弹出窗口中显示,但它仍然不会保持打开状态:

<Image Source="{StaticResource Help.Icon}" ToolTip="{Binding ElementName=textField,Path=HelpText}">
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  1. 为什么绑定到用户控件的HelpText依赖项属性在第一个代码示例中不起作用,但在第二个代码示例中是否有效?
  2. 如何ToolTip保持打开状态,或者如何使ToolTip两者保持打开并显示数据绑定文本?

谢谢!

data-binding wpf user-controls tooltip

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

如何在鼠标悬停时使用WPF边框创建淡出过渡?

我正在尝试创建一个Border在悬停时显示/隐藏边框本身.期望的效果是在悬停时显示内容周围的边框,当鼠标离开该区域时,边框淡出.我无法弄清楚"淡出"部分.

下面的代码段使用了样式Triggers.它可以切换边框颜色.我怎样才能实现淡出?

<Border
    BorderThickness="1"
    >
    <Border.Style>
        <Style>
            <Style.Triggers>
                <Trigger
                    Property="Border.IsMouseOver"
                    Value="false">
                    <Setter
                        Property="Border.BorderBrush"
                        Value="Transparent" />
                </Trigger>
                <Trigger
                    Property="Border.IsMouseOver"
                    Value="true">
                    <Setter
                        Property="Border.BorderBrush"
                        Value="LightGray" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Border.Style>
Run Code Online (Sandbox Code Playgroud)

c# wpf border mouseevent

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

EMGU与C#WPF

我正在尝试按照以下教程但使用WPF而不是Win Forms:

基础课程

WPF不使用PictureBox,而是使用Image.

所以这里试图加载一个Image.

XAML

<Image x:Name="srcImg" Width="400" Height="300"></Image>
Run Code Online (Sandbox Code Playgroud)

CS尝试1:

Image<Bgr, Byte> My_Image = new Image<Bgr, byte>(Openfile.FileName);
srcImg.Source = My_Image.ToBitmap();
Run Code Online (Sandbox Code Playgroud)

错误信息

Cannot implicitly convert type 'System.Drawing.Bitmap' 
to 'System.Windows.Media.ImageSource'
Run Code Online (Sandbox Code Playgroud)

CS尝试2:

Image<Bgr, Byte> My_Image = new Image<Bgr, byte>(Openfile.FileName);
srcImg.Source = new BitmapImage(My_Image);
Run Code Online (Sandbox Code Playgroud)

错误信息

Error   1   The best overloaded method match for 'System.Windows.Media.Imaging.BitmapImage.BitmapImage(System.Uri)' has some invalid arguments  
Error   2   Argument 1: cannot convert from 'Emgu.CV.Image<Emgu.CV.Structure.Bgr,byte>' to 'System.Uri' 
Run Code Online (Sandbox Code Playgroud)

我有什么想法我做错了吗?

c# wpf opencv image emgucv

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

如何找出窗口标题的字体大小?

我正在WPF中创建一个自定义窗口.为此,我想获得窗口标题的当前字体大小(无论用户在窗口颜色和外观设置中选择了什么).是否有捷径可寻?

c# wpf fonts caption

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