wpf应用程序在不同屏幕上运行

问题描述:

我有一个在不同屏幕上运行的应用程序。 我在窗口中准备了a4大小的窗体。 当我在我的电脑上运行没有问题以及在42英寸电视上。 我试着在另一台22英寸的电脑上安装应用程序,屏幕在视觉上和打印时都切割我的窗口。 它跟随我的XAML和C#代码打印wpf应用程序在不同屏幕上运行

<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); 
    } 

编辑:

在我的电脑,我看到的图像完全,而在其它监视器(大)我看到了削减

enter image description here

更新: enter image description here

+0

它有点不清楚,你想干什么?在另一个窗口中打开打印对话框? –

+0

对不起。 我有一个按钮,只是在A4纸上打印堆叠面板(a4大小)。 问题是,在我的电脑上没有问题。 而在另一台电脑它削减在屏幕上和打印的堆叠面板 – Disaji

+0

看看这个答案可能有所帮助:https://*.com/questions/6606750/show-dialog-box-at-center-of-its -parent –

尝试

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

如果答案有用,wpf没有“位置” – Disaji

Windows.Forms.Screen

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

plz标记作为答案 –

+0

也许错误是我的,我没有解释清楚。 如果我在我的电脑中更改了我的屏幕分辨率,我的应用程序对于每个分辨率都可以正常运行。 然而,当我将它安装在另一台计算机上时,它给了我一个与我的电脑具有相同分辨率的计算机不同的视图 – Disaji

+0

这是示例,您可以在System.Windows.Forms.Screen上使用'foreach'。 AllScreens' –