有没有办法在WPF中打印内存集合或可变大小?
我正在使用以下代码打印ListView控件.但是当内容大于垂直滚动条接管并切割内容时.
PrintDialog printDialog = new PrintDialog();
printDialog.ShowDialog();
printDialog.PrintVisual(lvDocumentSummary, "testing printing!");
Run Code Online (Sandbox Code Playgroud) 我已经使用Blend解构了一个标准的WPF按钮,并设法创建一个漂亮的样式按钮,但我无法弄清楚如何使路径填充按钮空间的内部(按钮宽度和高度).我也不确定是否需要指定ContentPresenter,即使它是正确的.我在按钮中间的文本之后(正常),但我的图形路径在它后面.
谁能给我反馈如何完成这个?风格定义为;
<ControlTemplate x:Key="CurvedButton" TargetType="{x:Type Button}">
<Grid>
<Path Fill="#ff951c1f" Data="F1 M 64,16 C 64,24 56,31 48,31 L 15,31 C 7,31 0,24 0,16 C 0,7 7,0 15,0 L 48,0 C 56,0 64,7 64,16 Z" />
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Width="Auto" />
</Grid>
</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)
这个按钮的用法是;
<StackPanel>
<Button Template="{StaticResource CurvedButton}" FontFamily="MS Trebuchet" FontSize="40" Width="200" Height="120" Foreground="Black">XXXXXXXXXXX</Button>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
一切都完成后,它应该看起来像一个弯曲的红色按钮.
提前致谢
瑞安
我有First/Last/Previous/Next按钮,用于更改TreeViewItem的选定子节点.将First节点和Last节点设置为选中不是问题.例如,要选择最后一个子节点:
TreeViewItem selectedItem = (myTreeView.SelectedItem as TreeViewItem);
TreeViewItem ParentItem = (selectedItem.Parent as TreeViewItem);
(ParentItem.Items[ParentItem.Items.Count - 1] as TreeViewItem).IsSelected = true;
Run Code Online (Sandbox Code Playgroud)
将上一个/下一个项目设置为选中的最简单/最优雅的方法是什么?
谢谢!
我有一些需要从我的后台演示者线程更新的UI代码.所以,我执行以下操作:从我的后台线程,我在UI中设置我的属性:
_ui.ConnectionStatus = "A";
Run Code Online (Sandbox Code Playgroud)
然后,我的设置如下:
public string ConnectionStatus
{
set
{
if (Dispatcher.CheckAccess())
ConnectionStatusTxt.Content = value;
else
{
Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() =>
{ConnectionStatusTxt.Content = value;}));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
The calling thread cannot access this object because a different thread owns it.
我的理解是Dispatcher负责调用不同的线程,所以这个错误让我感到困惑.谢谢!
我已经创建了一个类似于Outlook 2007的NavigationPane。在Outlook中,当窗格被折叠并且单击侧栏时,它用来弹出Selected NavigationItem内容。我在ControlTemplete中使用contentpresenter模仿了相同的行为(一个用于TabControl的SelectItemHost,另一个用于Popup)。但是问题是当打开弹出窗口时,NavigationPane会在不显示内容的情况下选择内容,而当我们从另一个导航项切换回相同的导航项时会显示该内容。我正在使用TabControl和TabItem作为NavigationPane和NavigationPaneItem。
我将“ SelectedContent”指向两个ContentPresenter的ContentSource
我正在用C#和WPF开发一大堆业务应用程序.我们的标准是包括所有表格上按钮的加速键(保存,取消,搜索等).我最近注意到,当加载表单时,即使用户没有按下"Alt"键,加速键也会激活.例如,我们的搜索按钮使用"Alt-H"作为加速器,但用户只需按"H"即可启动搜索.我在按钮内容中使用标准"_"来创建加速键.
<Button Content="Searc_h"/>
Run Code Online (Sandbox Code Playgroud)
有没有其他人注意到这种行为,有没有人找到一个合适的解决方法,需要按"Alt"键?
我对WPF中的数据绑定完全不熟悉,我正在尝试将对象属性绑定到文本框.我的目标是
public class TestObj
{
private m_Limit;
public string Limit
{
get
{
return m_Limit;
}
set
{
m_Limit = value;
}
}
Run Code Online (Sandbox Code Playgroud)
我的XAML看起来像
<Window x:Class="NECSHarness2.UpdateJobParameters"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:tools="clr-namespace:ManagementObjects;assembly=Core"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Title="Update Job Parameters" Height="320" Width="460">
<Grid>
<TextBox Text ="{Binding Path = Limit, Mode = TwoWay}" Height="20" HorizontalAlignment="Right" Margin="0,48,29,0" Name="textBox3" VerticalAlignment="Top" Width="161" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
现在,显然我没有把源设置在任何地方,我很困惑.我得到了这个与listview一起工作,但现在我很难过.谢谢你的帮助.
我需要一个只有用户可以允许输入整数的文本框.但是用户不能输入零.也就是说,他可以输入10,100等而不是0.如何在KeyDown中创建活动?
如何获取WPF Listview的headerclick事件?
我有一个TabControl在TabItems的DataTemplat主编.该模板似乎正常工作,因为我要在其中显示的用户控件TabItem正确显示.
我不确定的是如何让"x"显示出来,TabItem因此我可以关闭每个标签,因为它们是通过模板动态生成的.
作为WPF的新手,我开始接受许多概念,但是TabControl给了我很多麻烦,所以我很可能让模板可行,但不可维护.
这就是我所拥有的,我希望能够关闭每一个TabControl.我还需要能够在TabControl关闭时触发自定义事件.
<UserControl x:Class="Russound.Windows.UI.UserControls.CallLog.CaseReaderWpf"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:CallLog="clr-namespace:Russound.Windows.UI.UserControls.CallLog"
Height="637" Width="505">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Russound.Windows;component/UI/RussoundDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<TabControl x:Name="tabCases" >
<TabControl.ItemTemplate>
<DataTemplate DataType="{x:Type TabItem}">
<StackPanel>
<TextBlock Text="{Binding Path=Id}" />
</StackPanel>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate DataType="{x:Type TabItem}">
<CallLog:CaseReadOnlyDisplay DataContext="{Binding}" />
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
</UserControl>
Run Code Online (Sandbox Code Playgroud) wpf ×10
c# ×3
styles ×2
.net ×1
.net-3.5 ×1
button ×1
data-binding ×1
datatemplate ×1
dispatcher ×1
events ×1
forms ×1
hotkeys ×1
listview ×1
path ×1
printdialog ×1
printing ×1
textbox ×1
treeview ×1
treeviewitem ×1
wpf-controls ×1