小编Ran*_*ary的帖子

在WPF文本框中使用箭头键(C#)

有没有办法捕获WPF TextBox(System.Windows.Controls.Textbox)中的向上/向下箭头键并允许它们更改文本?我已经阅读过关于覆盖ProcessCmdKeyWindows Forms TextBox(System.Windows.Forms.TextBox)的方法,并且它工作正常,但这TextBox并不像WPF那样灵活.是否有类似的方法来实现这一点,而无需使用旧的Windows窗体TextBox?

对于我的例子,我有一个TextBox,它有一个数字文本掩码.我希望能够使用向上和向下箭头键增加/减少数值.

wpf textbox keypress arrow-keys

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

自定义WPF DatePickerTextBox模板

我试图TextBoxDatePicker控件中使用自定义,但我无法将日期从弹出日历绑定到TextBox.DatePicker除非我必须,我不想要整个风格,并且它DatePickerTextBox有自己的控制权,所以必须有一种方法来改变它.下面的代码就是我的开头:

<Style TargetType="{x:Type DatePickerTextBox}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type DatePickerTextBox}">
                <TextBox x:Name="PART_TextBox" Text="{Binding Path=SelectedDate}" />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

我可能没有正确地进行绑定,或者PART_TextBox可能不正确,因为它不是DatePicker模板本身的一部分.

有人请帮忙!:)

提前致谢!

.net wpf xaml textbox datepicker

9
推荐指数
2
解决办法
2万
查看次数

WPF在单独的UI线程上加载动画?(C#)

好的,我有一个加载动画,在填充大型DataTable时运行,让用户知道程序没有冻结.我有动画工作正常,但它也冻结了DataTable也在更新.有没有办法拥有多个UI线程,以便在DataTable加载信息时动画将继续运行?

编辑:当前代码如下.

private void CreateFileTable()
{
    file_data = new DataSet();
    data_table = new DataTable();
    file_data.Tables.Add(data_table);

    DataColumn tempCol = new DataColumn("File Name", typeof(string));
    data_table.Columns.Add(tempCol);

    tempCol = new DataColumn("Ext", typeof(string));
    data_table.Columns.Add(tempCol);

    tempCol = new DataColumn("Size", typeof(string));
    data_table.Columns.Add(tempCol);

    tempCol = new DataColumn("Created", typeof(Label));
    data_table.Columns.Add(tempCol);

    tempCol = new DataColumn("Modified", typeof(Label));
    data_table.Columns.Add(tempCol);

    tempCol = new DataColumn("Accessed", typeof(Label));
    data_table.Columns.Add(tempCol);

    tempCol = new DataColumn("Location", typeof(string));
    data_table.Columns.Add(tempCol);

    File_List.ItemsSource = file_data.Tables[0].DefaultView;
}

private void PopulateDirectories(string[] directories)
{
    for (int i = 0; i < directories.Length; i++)
    {
        DirectoryInfo tempDirInfo …
Run Code Online (Sandbox Code Playgroud)

c# wpf animation multithreading loading

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

C#:如何从WebBrowser元素获取文档标题?

我在尝试从C#中的WebBrowser获取文档标题时遇到问题.它在VB.NET中运行良好,但它不会给我任何C#属性.

当我输入MyBrowser.Document时.,我得到的唯一选项是4种方法:Equals,GetHashCode,GetType和ToString - 没有属性.

我认为这是因为我必须首先将文档分配给新实例,但我找不到VB.NET中存在的HTMLDocument类.

基本上我想要做的是每次WebBrowser加载/重新加载页面时返回Document.Title.

有人可以帮忙吗?非常感谢!

这是我目前的代码......

private void Link_Click(object sender, RoutedEventArgs e)
{
    WebBrowser tempBrowser = new WebBrowser();
    tempBrowser.HorizontalAlignment = HorizontalAlignment.Left;
    tempBrowser.Margin = new Thickness(-4, -4, -4, -4);
    tempBrowser.Name = "MyBrowser";
    tempBrowser.VerticalAlignment = VerticalAlignment.Top;
    tempBrowser.LoadCompleted += new System.Windows.Navigation.LoadCompletedEventHandler(tempBrowser_LoadCompleted);

    tempTab.Content = tempBrowser; // this is just a TabControl that contains the WebBrowser

    Uri tempURI = new Uri("http://www.google.com");
    tempBrowser.Navigate(tempURI);
}

private void tempBrowser_LoadCompleted(object sender, EventArgs e)
{
    if (sender is WebBrowser)
    {
        MessageBox.Show("Test");
        currentBrowser = (WebBrowser)sender;
        System.Windows.Forms.HtmlDocument tempDoc …
Run Code Online (Sandbox Code Playgroud)

c# browser document title

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

使用WPF DataGrid对DataTable进行排序?

好的,这让我疯了.我花了好几个小时试图找出应该是一个简单的解决方案,但我没有运气.

我在XAML页面上有一个[WPF Toolkit] DataGrid,它有一个DataTable作为其ItemsSource.我的页面上还有一个按钮,它获取DataGrid的SelectedIndex(选定行),并将其用作函数中的变量,该函数读取该索引处的绑定DataTable行并返回值.一切正常,直到我点击列标题进行排序.它对DataGrid进行排序,但不对DataTable进行排序,因此我的SelectedIndex已更改,但DataTable的索引没有更改,因此返回错误的值.

我找了Column Header点击事件 - 没有运气; 我试图得到网格当前排序的列的标题 - nada; 我试图在DataGridTextColumn模板上使用"Click"EventSetter - 不受支持.

我完全不知所措.如果WPF应该是对Windows Forms的改进,为什么删除了一些简单的功能呢?(同样愚蠢的是你必须绑定数据只是为了添加行,只是说.)我可以使用Windows Forms DataGrid并且不会有任何麻烦,但是我无法设置它的样式.

也许我没有正确地执行检查或某事......?下面是我的检索/输出代码.有人有主意吗???对你的帮助表示感谢!

DataRow selectedRow = my_data.Tables[0].Rows[my_grid.SelectedIndex];
MessageBox.Show(selectedRow["ItemName"]);
Run Code Online (Sandbox Code Playgroud)

sorting wpf datatable datagrid

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

WPF工具包DataGrid复选框问题

我真的希望有人可以帮助我.我的程序中有一个DataGrid,它有一个复选框列.DataGrid的ItemsSource是以编程方式加载的DataSet.当我在DataGrid中选择几个项目然后滚动它时,我会得到一些非常奇怪的行为.例如,当我检查两个CheckBox时,它告诉我有"2选择",但是如果我在DataGrid中向上或向下滚动,则数字会改变.如果我回滚到初始位置,它会回到"2选中".虽然听起来很奇怪,但当我滚动框时,它似乎正在调用Checked/Unchecked事件...非常奇怪......

我的代码顶部定义了以下内容:

private DataSet MyDataSet;
int selected_count = 0;
Run Code Online (Sandbox Code Playgroud)

然后我在我的方法中有以下代码将信息加载到DataSet中:

MyDataSet = new DataSet();
DataTable tempDataTable = new DataTable();
MyDataSet.Tables.Add(tempDataTable);

DataColumn tempCol = new DataColumn("Checked", typeof(bool));
tempDataTable.Columns.Add(tempCol);

for (int i = 0; i < 50; i++)
{
    DataRow tempRow = tempDataTable.NewRow();
    tempDataTable.Rows.Add(tempRow);
    tempRow["Checked"] = false;
}

MyList.ItemsSource = MyDataSet.Tables[0].DefaultView;
Run Code Online (Sandbox Code Playgroud)

我将IsChecked属性绑定到名为"Checked"的DataColumn,使用以下XAML:

<dtgrd:DataGrid x:Name="MyList" AutoGenerateColumns="False" CanUserAddRows="False" CanUserResizeRows="False" HeadersVisibility="Column" SelectionUnit="FullRow" HorizontalGridLinesBrush="#FF688CAF" VerticalGridLinesBrush="#FF688CAF">
    <dtgrd:DataGrid.Columns>
        <dtgrd:DataGridTemplateColumn x:Name="CheckCol" CanUserSort="True" CanUserResize="False">
            <dtgrd:DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox Name="MyCheckBox" IsChecked="{Binding Checked}" HorizontalAlignment="Center" VerticalAlignment="Center" Checked="MyCheckBox_Checked" Unchecked="MyCheckBox_Unchecked" />
                </DataTemplate>
            </dtgrd:DataGridTemplateColumn.CellTemplate>
        </dtgrd:DataGridTemplateColumn>
    </dtgrd:DataGrid.Columns>
</dtgrd:DataGrid> …
Run Code Online (Sandbox Code Playgroud)

wpf checkbox datagrid toolkit

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