标签: wpf-controls

如何在MFC应用程序中托管WPF内容?

我将在这里回答我自己的问题,因为我花了几个小时将它拼凑在一起并想分享我发现的东西,希望我能拯救别人挖掘.

有一个MSDN演练可以帮助你完成大部分工作,但我在其他地方找到了几个关键部分.例如,演练告诉您将行[System :: STAThreadAttribute]放在_tWinMain()定义之前,但如果您正在实现标准MFC应用程序,那么您的源代码中没有_tWinMain().

如果这里的任何内容不清楚,请随时提问,我会编辑答案以使事情更清楚.

wpf mfc wpf-controls

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

在WPF中动态添加网格和控件

我现在正在做一个显示系统中HDD使用情况的应用程序.为此,我想动态生成网格和控件(如进度条和标签)以显示用法.是否有可用于此目的的XAML模板?

wpf xaml templates wpf-controls

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

在wpf中如何使datagrid适合窗口高度

我有一个3列2行的网格

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="10"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
Run Code Online (Sandbox Code Playgroud)

我左下角的单元格,我有一个数据网格,AutoGenerateColumns = True,可以加载很多行.我想要做的是使数据网格高度最大化以适应窗口,并且用户能够使用数据网格滚动条来上下滚动行.

会发生什么是数据网格流动的窗口底部,即使我设置了

ScrollViewer.VerticalScrollBarVisibility="Visible"
Run Code Online (Sandbox Code Playgroud)

对于datagrid,滚动条无效,行向下流动.不知何故,数据网格不受限制......

该怎么办?

wpf datagrid scrollbar wpf-controls

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

在wpf中实时更新进度条

我在进度条实时显示更新时遇到了一些麻烦.

这是我现在的代码

for (int i = 0; i < 100; i++)
{
     progressbar1.Value = i;
     Thread.Sleep(100);
}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,进度条在函数运行时显示为空,然后在函数完成运行之前没有任何内容.有人可以向我解释如何做到这一点?我是C#/ WPF的新手,所以我不能100%确定如何在不同的线程上实现Dispatcher(如其他一些帖子所示)来解决这个问题.

为了澄清,我的程序有一个按钮,按下时,从文本框中获取值,并使用API​​检索信息,并根据它创建标签.我希望在每行数据处理完毕后更新进度条.

这就是我现在所拥有的:

private async void search(object sender, RoutedEventArgs e)
{
    var progress = new Progress<int>(value => progressbar1.Value = value);
    await Task.Run(() =>
    {
        this.Dispatcher.Invoke((Action)(() =>
        {
             some pre-processing before the actual for loop occur
             for (int i = 0; i < numberofRows; i++)
             {
                  label creation + adding
                  ((IProgress<int>)progress).Report(i);
             }
        }));
    });
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# wpf wpf-controls

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

在.NET Framework 4.6.2中,FormattedText()已废弃,我该如何修复它

当我尝试使用.net framework 4.6.2构建WPF项目时,我收到一个错误,因为FormattedText()已被废弃如下: [已废弃("使用PixelsPerDip覆盖",false)] public FormattedText(string textToFormat, CultureInfo culture,FlowDirection flowDirection,Typeface typeface,double emSize,Brush foreground);

新的覆盖方法是 public FormattedText(string textToFormat,CultureInfo culture,FlowDirection flowDirection,Typeface typeface,double emSize,Brush foreground,double pixelsPerDip);

问:如何确定pixelsPerDip?

问:如何使用没有pixelsPerDip?的旧构造函数,因为pixelsPerDip对我的项目没用.

c# wpf-controls .net-4.6.2

17
推荐指数
2
解决办法
6675
查看次数

WPF重绘问题

我有重绘WPF控件的问题.

WPF控件作为Windows窗体的ElementHost.Child添加.

当Windows 7进入节电模式并恢复正常时(通过在键盘上移动鼠标或按键),其余的Windows表单控件将重新绘制,但WPF部分不会重新绘制(并且Win 7背景在该地区).

在最小化和最大化应用程序时,WPF部分被重新绘制.

有人对这个问题有任何想法吗?

wpf wpf-controls winforms-interop

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

图像按钮仅在单击图像时响应,而不响应按钮内部的区域

我正在使用以下按钮样式,它消除了边框并使透明背景形成我的图像按钮:

  <Style x:Key="EmptyButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="Background" Value="#00000000"/>
    <Setter Property="BorderBrush" Value="#00000000"/>
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
    <Setter Property="HorizontalContentAlignment" Value="Center"/>
    <Setter Property="VerticalContentAlignment" Value="Center"/>
    <Setter Property="Padding" Value="1"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <ContentPresenter 
                    HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                    Margin="{TemplateBinding Padding}" 
                    RecognizesAccessKey="True" 
                    SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
                    VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

样式来自以下答案: 带有圆形图像的WPF按钮

现在的问题是无论实际按钮有多大,可点击区域都被限制在图像中:

按钮问题

我的按钮代码:

<Button Name="n02" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Style="{DynamicResource EmptyButtonStyle}" Canvas.Left="308" Canvas.Top="157" Height="106" Width="120">
        <Image Source="boto_face_off.PNG" Height="61" Width="59" />
    </Button>
Run Code Online (Sandbox Code Playgroud)

问题:如何使整个按钮区域对点击作出反应?我想让它保持透明,没有现在的边框.

wpf user-controls styles button wpf-controls

16
推荐指数
2
解决办法
8684
查看次数

将内容包装在StackPanel中

是否有可能将内容包装成StackPanel

我知道我们可以使用一个WrapPanel代替.但是出于代码修改的原因,我必须使用a StackPanel.

那么,有没有办法StackPanel在说出5件物品后把物品包起来......谢谢!

c# wpf wpf-controls

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

删除添加到画布的所有图像

有没有办法删除(删除)添加到CanvasC#(在WFP中)的所有图像(子)?

.net c# wpf image wpf-controls

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

为什么我的网格宽度为NaN?

我在视图中有以下标记.当我WindowContainer.Width在视图的启动代码中获取时,它返回NaN.

<Border BorderThickness="10">
  <StackPanel x:Name="Panel" Orientation="Vertical" >
    <Grid x:Name="WindowContainer" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Loaded="WindowContainer_OnLoaded">
      <delphi:Win32WindowHost x:Name="Host" />
    </Grid>
    <TextBlock x:Name="InfoTextBlock" HorizontalAlignment="Right" />
  </StackPanel>
</Border>
Run Code Online (Sandbox Code Playgroud)

是否Stretch使网格伸展以容纳其所有内容,或填充其容器?我希望它伸展以填充容器,Border并且具有适当的double宽度,我可以使用它来调整浮动窗口的大小.

wpf wpf-controls wpf-4.0

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