我使用绑定我的数据网格 //fill datagrid public DataTable GameData { get { DataSet ds = new DataSet(); FileStream fs = new FileStream(IMDB.WebPage.Class.Config.XMLPath, FileMode.Open, FileAccess.Read); StreamReader reader = new StreamReader(fs, Encoding.Default); ds.ReadXml(reader); fs.Close(); DataTable temp = ds.Tables[0]; return ds.Tables[0]; } } 出于某种原因,我在底部得到一个空行。 有时点击网格中的一些button和checkbox后,会添加更多的空行。 为什么是这样? 而我怎么阻止呢?
给定一个StackPanel: <StackPanel> <TextBox Height="30">Apple</TextBox> <TextBox Height="80">Banana</TextBox> <TextBox Height="120">Cherry</TextBox> </StackPanel> 尽pipe子元素本身大小不同,但是最好的办法是隔开子元素,使它们之间有相同的空隙。 可以在没有为每个孩子设置属性的情况下完成吗?
突然之间,我的整个项目都停止了编译,显示以下消息: 程序“path_to_obj_project_folder”不包含适用于入口点的静态“Main”方法 我没有改变项目属性,只是添加了一些类,将其他类移入文件夹。 它的WPF应用程序项目,所以它应该是一切OK。 入口点是它应该在哪里,文件App.xaml根本没有被修改:( 我应该怎么做才能使它再次工作?
这两个绑定有什么区别 : <ControlTemplate TargetType="{x:Type Button}"> <Border BorderBrush="{TemplateBinding Property=Background}"> <ContentPresenter /> </Border> </ControlTemplate> 和 <ControlTemplate TargetType="{x:Type Button}"> <Border BorderBrush="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}"> <ContentPresenter /> </Border> </ControlTemplate> ?
我想要传递一个枚举值作为WPF中的命令参数,使用这样的东西: <Button x:Name="uxSearchButton" Command="{Binding Path=SearchMembersCommand}" CommandParameter="SearchPageType.First" Content="Search"> </Button> SearchPageType是一个枚举,这是知道从哪个buttonsearch命令被调用。 这是可能的WPF中,或者你怎么能传递一个枚举值作为命令参数?
我有一个用户控件,我在运行时加载到一个MainWindow 。 我无法从UserControl获取包含窗口的句柄。 我已经试过this.Parent ,但它总是空。 有谁知道如何从WPF中的用户控件获取包含窗口句柄? 这里是如何加载控制: private void XMLLogViewer_MenuItem_Click(object sender, RoutedEventArgs e) { MenuItem application = sender as MenuItem; string parameter = application.CommandParameter as string; string controlName = parameter; if (uxPanel.Children.Count == 0) { System.Runtime.Remoting.ObjectHandle instance = Activator.CreateInstance(Assembly.GetExecutingAssembly().FullName, controlName); UserControl control = instance.Unwrap() as UserControl; this.LoadControl(control); } } private void LoadControl(UserControl control) { if […]
创build一个相对简单的数据input表单,只是想用横线(与HTML中的HR标签不同)来分隔某些部分,这些部分拉伸了表单的整个长度。 我试过这个: <Line Stretch="Fill" Stroke="Black" X2="1"/> 由于父控件不是固定的宽度,因此此行使窗口延伸至屏幕的整个宽度。 有没有一种简单的方法来做到这一点,而不是固定我父母的控制/窗口的宽度?
我怎样才能将我的WPF应用程序带到桌面? 到目前为止我已经尝试过: SwitchToThisWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle, true); SetWindowPos(new WindowInteropHelper(Application.Current.MainWindow).Handle, IntPtr.Zero, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); SetForegroundWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle); 没有一个正在做这个工作( Marshal.GetLastWin32Error()是说这些操作成功完成,每个定义的P / Invoke属性都有SetLastError=true )。 如果我创build一个新的空白WPF应用程序,并用计时器调用SwitchToThisWindow ,它完全按预期工作,所以我不知道为什么它不工作在我的原始情况。 编辑 :我正在与全球热键一起做这个。
我在下面的WPF应用程序的主窗口下面的XAML,我想设置下面的devise时间d:DataContext ,我可以成功地为我所有的用户控件,但它给了我这个错误,当我尝试做它在窗户上… Error 1 The property 'DataContext' must be in the default namespace or in the element namespace 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'. Line 8 Position 9. C:\dev\bplus\PMT\src\UI\MainWindow.xaml 8 9 UI <Window x:Class="BenchmarkPlus.PMT.UI.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" xmlns:UI="clr-namespace:BenchmarkPlus.PMT.UI" xmlns:Controls="clr-namespace:BenchmarkPlus.PMT.UI.Controls" d:DataContext="{d:DesignInstance Type=UI:MainViewModel, IsDesignTimeCreatable=True}" Title="MainWindow" Height="1000" Width="1600" Background="#FF7A7C82"> <Grid> <!– Content Here –> </grid> </Window>
WPF中的ControlTemplate和DataTemplate有什么不同?