【问题标题】:wpf application run on different screenwpf 应用程序在不同的屏幕上运行
【发布时间】:2018-03-05 11:01:21
【问题描述】:

我有一个在不同屏幕上运行的应用程序。 我在窗口中准备了 a4 大小的表格。 当我在我的电脑上运行时没有问题,就像在 42 英寸电视上一样。 我尝试将应用程序安装在另一台 22 英寸的电脑上,屏幕在视觉和打印上都切割了我的窗口。 它遵循我的 xaml 和 c# 代码进行打印

<StackPanel Background="White" Height="29.7cm" Width="19.5cm" >
 <StackPanel Name="StackFoglioA4Pag1" HorizontalAlignment="Center" Margin="20" Background="White">
                            <!--<TextBox HorizontalContentAlignment="Center" BorderBrush="Black" Text="ciane S.p.A." VerticalContentAlignment="Center" IsReadOnly="True" FontWeight="Bold" FontFamily="Times New Roman" FontSize="14"></TextBox>
                            <TextBox Padding="2" HorizontalContentAlignment="Center" BorderBrush="Black" BorderThickness="1,0,1,1"  Text="Main "-  VerticalContentAlignment="Center" IsReadOnly="True" FontFamily="Times New Roman" FontSize="9"></TextBox>
                            <TextBox Padding="2" HorizontalContentAlignment="Center" BorderThickness="1,0,1,1"  BorderBrush="Black" Text="textggggggg  " VerticalContentAlignment="Center" IsReadOnly="True" FontFamily="Times New Roman" FontSize="9"></TextBox>-->
                            <DockPanel Margin="0,5,0,0">
                     <!--etc etc   

public static void StampaStackPanel(StackPanel StackPanel,string message)
    {
        PrintDialog stampa = new PrintDialog();
        if (stampa.ShowDialog() != true) return;

        stampa.PrintVisual(StackPanel,message);
    }

编辑:

在我的电脑中,我看到图像已满,而在另一台显示器(更大)中,我看到它被剪掉了

更新:

【问题讨论】:

  • 有点不清楚,你想做什么?在另一个窗口屏幕中打开打印对话框??
  • 对不起。我有一个按钮,可以在 a4 纸上打印堆栈面板(a4 大小)。问题是在我的电脑上没有问题。而在另一台电脑上,它会在屏幕和打印上切割堆栈面板
  • 看看这个答案可能会有所帮助:stackoverflow.com/questions/6606750/…
  • 谢谢,但我不明白该链接如何帮助我。我忘了说作为 stackpanel(a4 大小)的父窗口已最大化
  • 如果您想在您的开发机器上重现该问题,请更改系统的 DPI 设置,而不是分辨率。

标签: c# wpf printing


【解决方案1】:

试试

stampa.Location = new Point(//WhereYouWanX, //WhereYouWantY);

【讨论】:

  • wpf 没有“位置”
【解决方案2】:

Windows.Forms.Screen

var view= new YourView();
var screens = System.Windows.Forms.Screen.AllScreens[1].WorkingArea;
view.Location = new Point(rectMonitor.Left, rectMonitor.Top);

【讨论】:

  • 也许是我的错,我没有解释清楚。如果我在我的电脑中更改我的屏幕分辨率,我的应用程序对于每个分辨率都可以正常运行。但是,当我将它安装在另一台计算机上时,它给我的视图与在我的电脑上以相同分辨率给我的视图不同
  • 这是示例,您可以在“System.Windows.Forms.Screen.AllScreens”上使用“foreach”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多