小编Jos*_*h G的帖子

将ContextMenu的原点传递给WPF命令

与上下文菜单项中的命令相关的有趣问题...

我想触发一个命令在我的控件InsertRowCmd中插入一行.此命令需要知道插入行的位置.

我可以使用Mouse.GetPosition(),但这会让我当前的鼠标位置,这将在菜单项上.我想获得上下文菜单的来源.

有没有人建议如何将上下文菜单的来源作为参数传递给命令?

示例代码:

<UserControl x:Name="MyControl">
<!--...-->
        <ContextMenu x:Name="menu">
            <MenuItem Header="Insert Row" Command="{x:Static customCommands:MyCommands.InsertRowCmd}" CommandParameter="?"/>
        </ContextMenu>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

我目前的想法如下:

- 使用单击处理程序,以便我可以在代码中找到原点.问题是我必须处理启用/禁用.

-Handle单击事件并保存上下文菜单的原点.将此保存的信息传递给命令.我已经验证了在执行命令之前触发了click事件.

有任何想法吗?

编辑:

我正在使用Josh Smith的CommandSinkBinding将命令处理路由到我的ViewModel类.因此,处理命令执行的代码对视图一无所知.

wpf xaml mvvm

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

虚拟化不裁剪项目的面板

因此,如果项目在滚动区域的末尾被剪切/裁剪,那么拥有无铬集合看起来真的很愚蠢.

我想为集合(ItemsControl/ListBox)创建一个虚拟化面板,它只绘制整个项目,而不是项目.例如:

 ______________
|              |
|______________|
 ______________
|              |
|______________|
 ______________
|              |
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我不希望显示第三个部分容器,除非有足够的空间显示整个项目/容器.在示例中,由于空间不足,第三个项目被裁剪.

有什么建议?我应该尝试重新发明轮子(构建我自己的VirtualizingWholeItemPanel)吗?

编辑:

微软澄清说,VirtualizingPanel.ScrollUnit根本不打算执行此功能.看来,VirtualizingPanel.ScrollUnit提供一个非常类似的宗旨,以旧CanContentScrollScrollViewer.

wpf itemscontrol scrollview virtualizingstackpanel .net-4.5

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

将图像添加到列表框

我有一些带有一些文字的图像,我需要在列表框中显示带有相关文字的图像.

浏览谷歌我遇到了这个示例课程,

public class Customer
{

    public string Fname;

    public string Lname;

public Customer(string firstName, string lastName)
{
    Fname = firstName;
    Lname = lastName;
}

public override string ToString()
{
    return Fname + " " + Lname;
}
}

lstCustomers.Items.Add(new Customer("Foo","Bar"));
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,因为它只返回字符串,如何将图像和字符串一起返回,以便它被添加到列表框?

最好的祝福

@nand

c# wpf listbox image return-value

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

WPF ToolBar有哪些优点?

我正在尝试决定是否应该在其上创建一个带有按钮的简单StackPanel,或者我是否应该使用WPF ToolBar类来包含这些按钮(我正在创建一个简单的工具栏).

使用WPF的内置ToolBar控件有什么优缺点?

到目前为止,这些是我见过的唯一优势:

  • 必要时,工具栏可能会崩溃; 从上下文下拉列表中可以获得其他项目.
  • 如果ToolBar包含在ToolBarTray中,则可以相对于彼此重新定位多个ToolBar.

WPF ToolBar还有其他好处吗?这些都不适用于我的简单工具栏.

wpf toolbar wpf-controls compare-contrast

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

突出显示搜索TextBlock

我的目标是创建一个具有新依赖项属性SearchText的自定义TextBlock控件.此属性将包含正则表达式.将使用自定义样式(另一个DP)突出显示TextBlock文本中所有出现的此正则表达式.

我当前的实现涉及清除TextBlock的InlineCollection中的所有Inline对象.然后我使用未突出显示的文本运行TextBlock并运行应用了样式的突出显示文本(此方法不支持直接向TextBlock添加内联,而是必须使用TextBlock.TextProperty).

工作得很好,但有时我在尝试清除Inlines时遇到一个奇怪的异常:InvalidOperationException:"此时无法修改此节点的逻辑子节点,因为正在进行树步行."

这个问题似乎是与一个.我正在修改TextChanged函数中的内联,但我使用一个标志来避免无限递归编辑.

有关如何构建此自定义控件的任何想法?有一个更好的方法吗?我该如何解决这个异常?

谢谢!

wpf textblock custom-controls invalidoperationexception inlines

4
推荐指数
2
解决办法
2162
查看次数

F#中">>"运算符的语义

在Microsoft的F#示例中,他们使用">>"运算符,如下所示:

test |> Seq.iter (any_to_string >> printfn "line %s");
Run Code Online (Sandbox Code Playgroud)

">>"运算符在这种情况下做了什么?序列中的每个项(在这种情况下是一个数组)是否any_to_string隐式传递?这类似(fun item -> printfn "line %A" item)吗?

f# operators semantics

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

动态添加和删除堆栈面板

在此输入图像描述

我有一个WrapPanel(绿色背景)ListBox(灰色背景).

我试图动态添加StackPanel多次(通过点击给定图像下面的按钮)WrapPanel.

StackPanel包含Button哪些内容具有"X".StackPanel单击此按钮时,我想删除单个对象(橙色背景).

怎么能解决?

.net wpf wrappanel stackpanel

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

HTML内联块布局

我无法理解HTML中的内联,内联块和块显示选项之间的区别.特别是内联块如何适应.块项目似乎总是出现在自己的行上.内联项似乎不能很好地处理宽度和高度设置.内联块似乎是两者之间的混合,但导致一些古怪的布局情况.这是一个例子:

<style type="text/css">
#container {
    height: 100px;
    background: tan;
}

#container p {
    height: 100px;
    background: yellow;
    text-align: center;
    padding: 0px;
    margin: 0px;
    width: 29%;
    display: inline-block;
}

#container div:first-child {
    height: 100px;
    display: inline-block;
    width: 35%;
    padding: 0px;
    margin: 0px;
    border-top: 2px solid #888;
    border-right: 2px solid #888;
}

#container div:last-child {
    height: 100px;
    display: inline-block;
    width: 35%;
    padding: 0px;
    margin: 0px;
    border-left: 2px solid #888;
    border-bottom: 2px solid #888;
}
</style>
<body>
    <div id="container">
        <div class="decorator"></div>
        <p>A very …
Run Code Online (Sandbox Code Playgroud)

html css layout

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