Tag: wpf

问题与DependencyProperty绑定

我创build了一个小的文件浏览器控制: <UserControl x:Class="Test.UserControls.FileBrowserControl" 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="44" d:DesignWidth="461" Name="Control"> <Grid Margin="3"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <TextBox Margin="3" Text="{Binding SelectedFile}" IsReadOnly="True" TextWrapping="Wrap" /> <Button HorizontalAlignment="Right" Margin="3" Width="100" Content="Browse" Grid.Column="1" Command="{Binding BrowseCommand}" /> </Grid> </UserControl> 有了下面的代码: public partial class FileBrowserControl : UserControl { public ICommand BrowseCommand { get; set; } //The dependency property […]

从ToolTip或ContextMenu的RelativeSource绑定

我在这里做错了什么? <GridViewColumn> <GridViewColumn.CellTemplate> <DataTemplate> <Button> <Button.ToolTip> <TextBlock Text="{Binding Path=Title, RelativeSource={RelativeSource AncestorType=Window}}" /> 这只是一个简单的例子,它不起作用:)实际上,我需要从窗口的DataContext范围内的另一个属性获取值。 帮帮我

如何让types的WPF容器的孩子?

我怎样才能在WPF中的MyContainer Grid中获得ComboBoxtypes的子控件? <Grid x:Name="MyContainer"> <Label Content="Name" Name="label1" /> <Label Content="State" Name="label2" /> <ComboBox Height="23" HorizontalAlignment="Left" Name="comboBox1"/> <ComboBox Height="23" HorizontalAlignment="Left" Name="comboBox3" /> <ComboBox Height="23" HorizontalAlignment="Left" Name="comboBox4" /> </Grid> 这行给了我一个错误: var myCombobox = this.MyContainer.Children.GetType(ComboBox);

WPF图像平移,缩放和滚animation布上的图层

我希望有人能帮助我。 我正在构build一个WPF成像应用程序,该应用程序从摄像头获取实时图像,以便用户查看图像,然后突出显示该图像上的感兴趣区域(ROI)。 关于ROI(宽度,高度,相对于图像上的点的位置等等)的信息然后被发送回相机,实际上是告诉/训练相机固件在哪里寻找诸如条形码,文本,液位,转弯在图像上的螺丝等)。 所需的function是能够平移和缩放图像及其ROI,以及在图像缩放比查看区域大时滚动。 ROI的StrokeThickness和FontSize需要保持原始比例,但是ROI中的形状的宽度和高度需要随图像一起缩放(这对捕获传输到相机的精确像素位置至关重要)。 除了滚动和其他一些问题之外,我已经完成了大部分工作。 我关心的两个方面是: 当我介绍一个ScrollViewer我没有得到任何滚动的行为。 据我了解,我需要引入一个LayoutTransform来获得正确的ScrollViewer行为。 但是当我这样做时,其他区域开始分解(例如ROI在图像上不能保持其正确的位置,或者在平移时鼠标指针开始从图像上的选定点开始蠕动,或者图像的左angular弹跳到MouseDown上的当前鼠标位置。) 我不能像我所需要的那样得到我的投资回报率。 我有这个工作,但它不理想。 我有什么不保留确切的中风厚度,我没有看到在文本块忽略规模。 希望你能看到我在代码示例中做了什么。 我相信我的问题与我对变换缺乏理解以及它们与WPF布局系统的关系有关。 希望展示我迄今为止所完成的代码的翻译将有所帮助(见下文)。 仅供参考,如果Adorners是这样的build议,这可能不适用于我的情况,因为我最终可能会得到比所支持的更多的装饰(传闻144装饰是事情开始崩溃的时候)。 首先,下面是一个屏幕截图,展示了一个ROI(文本和形状)的图像。 矩形,椭圆和文本需要按照图像上的比例和旋转的区域,但不能按比例缩放或字体大小。 这里是显示上述图像的XAML,以及用于缩放的滑块(鼠标滚轮缩放将在稍后提供) <Window x:Class="PanZoomStackOverflow.MainWindow" 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" Title="MainWindow" Height="768" Width="1024"> <DockPanel> <Slider x:Name="_ImageZoomSlider" DockPanel.Dock="Bottom" Value="2" HorizontalAlignment="Center" Margin="6,0,0,0" Width="143" Minimum=".5" Maximum="20" SmallChange=".1" LargeChange=".2" TickFrequency="2" TickPlacement="BottomRight" Padding="0" Height="23"/> <!– This resides in a user control in my […]

访问UI(主)在WPF中安全地线程

我有一个应用程序更新我的数据网格,每当我正在看日志文件更新(附加新文本)在以下方式: private void DGAddRow(string name, FunctionType ft) { ASCIIEncoding ascii = new ASCIIEncoding(); CommDGDataSource ds = new CommDGDataSource(); int position = 0; string[] data_split = ft.Data.Split(' '); foreach (AttributeType at in ft.Types) { if (at.IsAddress) { ds.Source = HexString2Ascii(data_split[position]); ds.Destination = HexString2Ascii(data_split[position+1]); break; } else { position += at.Size; } } ds.Protocol = name; ds.Number […]

在WPF窗口中托pipe外部应用程序

我们正在WPF中开发一个布局pipe理器,该布局pipe理器具有可由用户移动/resize等的视口。 视图通常由布局pipe理器中的我们控制的提供者填充数据(图片/电影/等)。 我的工作是检查是否也有可能在视口中托pipe任何外部Windows应用程序(即记事本,计算器,Adobe阅读器等)。 我遇到了一些问题。 大多数资源指向使用HwndHost类。 我正在尝试从Microsoft本身的演练: http : //msdn.microsoft.com/en-us/library/ms752055.aspx 我已经适应了这个,所以列表框被外部应用程序的窗口句柄所取代。 有谁能帮我解决这些问题: 演练添加了一个额外的静态子窗口,其中放置了ListBox 。 我不认为我需要外部应用程序。 如果我省略了,我必须将外部应用程序设置为子窗口(使用user32.dll中的Get / SetWindowLong将GWL_STYLE设置为WS_CHILD )。 但是,如果我这样做,该应用程序的菜单栏消失(因为WS_CHILD风格),它不再接收input。 如果我使用子窗口,并使外部应用程序的一个孩子的东西合理的工作,但有时外部应用程序不画好。 另外,我需要子窗口调整到视口。 这可能吗? 当外部的应用程序产生一个子窗口(即记事本 – >帮助 – >关于),这个窗口不是由HwndHost托pipe(因此可以移动到视口外)。 有什么办法可以预防吗? 由于我不需要外部应用程序和布局pipe理器之间的进一步交互,我是否认为我不需要捕获和转发消息? (演练将HwndSourceHook添加到子窗口中,以捕获列表框中的select更改)。 当你运行(未修改的)例子VS2010并closures窗口时,VS2010没有看到程序结束。 如果你打破了一切,你最终会在没有源代码的情况下进行汇编。 有些臭味正在发生,但我找不到。 演练本身似乎是非常草率的编码,但我还没有find关于这个问题的更好的文档。 任何其他的例子? 另一种方法是不要使用HwndHost而是像这里讨论的WindowsFormHost 。 它工作(而且更简单!),但我不能控制应用程序的大小? 另外,WinFormHost是不是真的是这个意思? 感谢任何正确的方向指针。

从WPF应用程序获取应用程序的目录

我find了与AppDomain的Windows窗体的解决scheme,但什么是WPF Application对象的等价物?

任何方式来使WPF文本块可选?

我想让Witty (一个开源的Twitter客户端)中显示的文本可选。 它当前使用自定义文本块显示。 我需要使用TextBlock,因为我正在使用文本块的内联来显示和格式化@username和链接作为超链接。 频繁的请求是能够复制粘贴文本。 为了做到这一点,我需要使TextBlock可选。 我试图通过显示文本使用只读文本框样式来看起来像一个文本块,但这不会工作在我的情况,因为一个文本框没有内联。 换句话说,我无法在TextBox中单独设置样式或格式,就像我可以使用TextBlock一样。 有任何想法吗?

WPF中的键盘快捷键

我知道使用_而不是&,我正在看的是所有的Ctrl +types的快捷键。 Ctrl + Z用于撤消, Ctrl + S用于保存等。 是否有一个“标准”的方式在WPF应用程序中实现这些? 或者是自己推出并将其连接到任何命令/控制的情况?

如何将枚举绑定到WPF中的combobox控件?

我正在试图find一个简单的例子,其中显示的是枚举枚举。 我见过的所有例子都试图添加漂亮的显示string,但我不想那么复杂。 基本上我有一个类,它拥有我绑定的所有属性,首先将DataContext设置为这个类,然后在xaml文件中指定这样的绑定: <ComboBox ItemsSource="{Binding Path=EffectStyle}"/> 但是这不会显示ComboBox框中的枚举值作为项目。