Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drag Adorner at wrong position on High DPI screens #385

Closed
angus42 opened this issue Aug 25, 2021 · 12 comments · Fixed by #386
Closed

Drag Adorner at wrong position on High DPI screens #385

angus42 opened this issue Aug 25, 2021 · 12 comments · Fixed by #386
Labels
Milestone

Comments

@angus42
Copy link

angus42 commented Aug 25, 2021

Description
When dragging an item from a ListBox the dragged item is shown at a wrong position offset to the lower right. This only occurs on a High DPI screens such as Notebooks.
WrongOffsetAtHighDPIScreen

Repro
This can be reproduced with the simplest of all programs:

<Window x:Class="DragItemScreenPositionIssue.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:dd="clr-namespace:GongSolutions.Wpf.DragDrop;assembly=GongSolutions.Wpf.DragDrop"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <ListBox dd:DragDrop.IsDropTarget="True" dd:DragDrop.IsDragSource="True"
                 dd:DragDrop.UseDefaultEffectDataTemplate="True" dd:DragDrop.UseDefaultDragAdorner="True">
            <ListBoxItem>ListBox Item #1</ListBoxItem>
            <ListBoxItem>ListBox Item #2</ListBoxItem>
            <ListBoxItem>ListBox Item #3</ListBoxItem>
        </ListBox>
    </Grid>
</Window>

Versions
It is a regression between release 2.3.2 and 2.4.0.
Tested with .NET Framework 4.8 and 4.5.2 (to rule out fix for issue #363).

@angus42 angus42 added the Bug label Aug 25, 2021
@punker76
Copy link
Owner

@angus42 DPI and WPF, that's weird... In the sample app I use these values at the app.manifest to get the DPI stuff working:

  <application xmlns="urn:schemas-microsoft-com:asm.v3">
	  <windowsSettings>
		  <!-- Per Monitor V1 [OS >= Windows 8.1] Values: False, True, Per-monitor, True/PM -->
		  <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware>
		  <!-- Per Monitor V1 [OS >= Windows 10 Anniversary Update (1607, 10.0.14393, Redstone 1)] Values: Unaware, System, PerMonitor -->
		  <!-- Per Monitor V2 [OS >= Windows 10 Creators Update (1703, 10.0.15063, Redstone 2)] Value: PerMonitorV2 -->
		  <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
	  </windowsSettings>
  </application>

@angus42
Copy link
Author

angus42 commented Aug 25, 2021

Confirmed. That manifest fixes the problem. Any idea, why this changed between versions and maybe how to enable the old behavior programmatically (preferably on a per control basis)? My problem is, that my control is hosted in a WinForms application that I do not have access to and that might not be entirely High DPI aware.
Thx.

@angus42
Copy link
Author

angus42 commented Aug 25, 2021

My application that I used for reproduction was a plain WPF application though and still had the issue, no matter what MS says in the manifest that is automatically generated by VS. I guess it is due to my setup with two monitors, one being High DPI but not being the primary screen. And yet another case that MS missed in all the High DPI scenarios.

@punker76
Copy link
Owner

@angus42 I think I need to look a little bit closer here. It could be that I broke it with the new previewer.

@punker76 punker76 added this to the 2.4.1 milestone Aug 26, 2021
punker76 added a commit that referenced this issue Aug 26, 2021
(#385) Fix wrong position for Drag Adorner on High DPI screens
@punker76
Copy link
Owner

@angus42 I found a solution. Hopefully it's working without any issue with the GetCurrentPos...

@angus42
Copy link
Author

angus42 commented Aug 26, 2021

I have tested your fix from the develop branch. It works with the vanilla WPF application as expected on both screens even without the dpi awareness manifest settings. But in my real world WinForms application that hosts the WPF control the "Move to" adorner is under both dpi conditions at the right position just slightly under the mouse cursor, whereas the drag item preview is showing far to the upper right of the mouse cursor. What is also funny is, that this is now wrong on both, high and normal DPI screen.

@punker76
Copy link
Owner

@angus42 Can you show this with a screenshot? Thx

@angus42
Copy link
Author

angus42 commented Aug 26, 2021

Sure. This is from my normal DPI screen which is the primary display. But same thing with the high DPI screen. Horizontal offset seems just right, but vertical offset is far to the top. This shows the WPF control. There is some WinForms stuff above that I cropped, but its less than the amount that the offset is wrong (in case it was forgotten in the calculation). I could not reproduce the issue with a simple WinForms application that just host a WPF UserControl with a ListBox in it. Strange.

DragOffsetIssue

@punker76
Copy link
Owner

@angus42 I think I need a abstract sample with exact this scenario.

@angus42
Copy link
Author

angus42 commented Aug 26, 2021

Found it. Its the Canvas on a Button. Try the following as a ItemTemplate/DataTemplate.
I am happy to test any bugfix branch/pull request.

<UserControl x:Class="DragItemScreenPositionIssue.Card"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             HorizontalAlignment="Stretch">
    <Button Height="30" Width="30" Background="DimGray">
        <Canvas>
            <Path Fill="#FFFFFF" RenderTransformOrigin="0.041, -0.048" StrokeThickness="0" StrokeMiterLimit="10" StrokeLineJoin="Miter" StrokeStartLineCap="Flat" StrokeEndLineCap="Flat" Data="  M 222.645 217.602   L 226.895 217.602   L 226.895 226.105   L 222.645 226.105   L 168.738 226.105   L 168.738 265.156   L 222.645 265.156   L 226.895 265.156   L 226.895 273.66   L 222.645 273.66   L 197.801 273.66   L 197.801 312.727   L 251.723 312.727   L 255.957 312.727   L 255.957 321.199   L 251.723 321.199   L 197.801 321.199   L 197.801 360.281   L 251.723 360.281   L 255.957 360.281   L 255.957 368.75   L 251.723 368.75   L 197.801 368.75   L 193.566 368.75   L 189.328 368.75   L 189.328 364.516   L 189.328 360.281   L 189.328 273.66   L 168.738 273.66   L 168.738 407.836   L 222.645 407.836   L 226.879 407.836   L 226.879 416.305   L 222.645 416.305   L 168.738 416.305   L 168.738 455.391   L 222.645 455.391   L 226.879 455.391   L 226.879 463.859   L 222.645 463.859   L 197.801 463.859   L 197.801 502.941   L 251.723 502.941   L 255.957 502.941   L 255.957 511.414   L 251.723 511.414   L 197.801 511.414   L 193.566 511.414   L 189.328 511.414   L 189.328 507.18   L 189.328 463.859   L 168.738 463.859   L 168.738 463.875   L 160.234 463.875   L 160.234 459.625   L 160.234 273.66   L 160.234 265.156   L 160.234 226.105   L 160.234 217.602   L 160.234 195.105   L 160.234 190.852   L 168.738 190.852   L 168.738 195.105   L 168.738 217.602   Z   M 132.703 181.48   L 475.785 181.48   L 475.785 551.477   L 132.703 551.477   Z   M 467.785 189.48   L 140.703 189.48   L 140.703 543.477   L 467.785 543.477   Z   M 327.348 211.238   L 328.461 211.641   L 329.949 212.18   L 330.211 212.113   L 333.516 211.32   L 337.109 211.879   L 340.469 212.414   L 342.34 211.957   L 349.246 210.273   L 351.406 211.816   L 355.188 212.227   L 357.703 212.508   L 358.191 212.305   L 364.285 209.781   L 368.648 211.922   L 372.027 210.937   L 376.262 211.777   L 379.375 212.391   L 379.844 212.34   L 381.754 212.121   L 383.184 212.238   L 383.688 212.074   L 391.172 209.578   L 395.02 212.605   L 399.156 208.852   L 402.781 210.746   L 407.48 207.891   L 411.914 212.512   L 413.629 212.586   L 417.75 210.977   L 419.398 211.508   L 423.715 209.52   L 424.391 209.816   L 424.391 237.301   L 424.016 237.141   L 421.336 238.359   L 418.152 237.348   L 415.539 237.23   L 412.254 237.086   L 410.984 237.355   L 405.895 238.465   L 403.727 239.785   L 399.531 237.59   L 398.379 237.758   L 397.715 237.859   L 397.047 237.906   L 393.016 238.184   L 387.379 238.574   L 385.504 237.094   L 383.617 236.941   L 382.227 236.816   L 380.781 236.98   L 377.891 237.316   L 375.184 236.777   L 373.598 236.473   L 371.875 236.973   L 365.898 238.711   L 363.285 237.426   L 362.527 237.75   L 358.09 237.262   L 355.711 237.012   L 355.199 237.227   L 347.934 240.387   L 343.535 237.242   L 341.938 237.625   L 338.328 237.055   L 334.953 236.523   L 333.043 236.98   L 328.09 238.176   L 327.348 237.91   Z   M 312.813 237.012   L 311.816 236.23   L 307.68 239.977   L 304.055 238.082   L 299.355 240.941   L 294.922 236.32   L 293.207 236.246   L 289.086 237.855   L 287.438 237.332   L 283.121 239.309   L 277.941 237.051   L 275.176 237.863   L 273.555 237.332   L 269.758 239.328   L 263.559 237.422   L 263.035 237.262   L 258.176 238.93   L 256.203 237.664   L 251.691 240.707   L 247.848 237.785   L 247.848 210.437   L 251.777 209.121   L 252.523 209.687   L 255.871 207.43   L 261.742 211.191   L 262.457 210.949   L 266.855 212.301   L 270.898 210.176   L 275.66 211.723   L 279.973 210.457   L 282.82 211.699   L 285.5 210.469   L 288.684 211.488   L 291.293 211.602   L 294.582 211.75   L 295.852 211.477   L 300.941 210.367   L 303.109 209.047   L 307.305 211.242   L 308.453 211.074   L 309.121 210.98   L 309.785 210.93   L 312.813 210.723   Z   M 422.477 286.754   L 421.449 286.219   L 420.301 286.387   L 419.637 286.484   L 418.969 286.539   L 414.938 286.812   L 409.301 287.207   L 407.426 285.727   L 405.539 285.57   L 404.148 285.449   L 402.699 285.609   L 399.813 285.945   L 397.105 285.41   L 395.52 285.102   L 393.793 285.605   L 387.82 287.34   L 385.207 286.055   L 384.449 286.371   L 380.008 285.887   L 377.633 285.641   L 377.121 285.855   L 370.086 288.91   L 370.086 259.168   L 371.168 258.902   L 373.328 260.445   L 377.109 260.859   L 379.625 261.133   L 380.113 260.934   L 386.207 258.414   L 390.57 260.547   L 393.949 259.57   L 398.18 260.406   L 401.297 261.02   L 401.766 260.969   L 403.676 260.746   L 405.102 260.871   L 405.609 260.703   L 413.094 258.207   L 416.941 261.23   L 421.078 257.48   L 422.477 258.211   Z   M 355.551 285.469   L 354.961 285.609   L 350.012 286.805   L 345.738 285.27   L 345.523 285.184   L 345.313 285.277   L 341.23 286.953   L 336.059 285.848   L 334.582 285.531   L 333.816 285.805   L 326.969 288.168   L 323.648 286.051   L 320.371 286.906   L 317.129 285.473   L 314.168 286.285   L 310.316 285.699   L 308.582 285.434   L 308.582 286.109   C 306.574 286.336 304.348 286.246 302.426 285.785   L 300.32 285.277   L 300.176 285.312   L 294.145 286.766   L 293.902 286.637   L 292.168 287.418   L 289.547 286.187   L 285.254 288.902   L 279.434 285.746   L 277.168 286.172   L 272.398 289.797   L 267.887 286.758   L 265.914 288.023   L 261.051 286.352   L 260.531 286.508   L 254.328 288.418   L 250.535 286.422   L 248.914 286.949   L 247.848 286.637   L 247.848 260.637   L 248.43 260.809   L 253.191 259.266   L 257.234 261.391   L 261.633 260.035   L 262.348 260.281   L 268.219 256.52   L 271.566 258.777   L 272.313 258.211   L 279.371 260.578   L 284.117 259.684   L 287.668 257.441   L 292.391 259.656   L 294.938 258.516   L 298.16 260.238   L 300.328 259.715   L 304.348 260.687   L 307.715 261.5   L 307.715 260.496   C 308.449 260.516 309.188 260.582 309.906 260.695   L 312.035 261.012   L 313.887 260.508   L 319.48 258.973   L 322.988 260.512   L 328.414 259.102   L 330.5 260.437   L 332.5 259.742   L 337.23 260.762   L 338.262 260.977   L 339.609 260.422   L 344.828 258.27   L 350.379 260.27   L 351.871 260.805   L 352.133 260.738   L 355.438 259.945   L 355.551 259.961   Z   M 420.5 333.637   L 418.141 333.062   L 416.273 332.605   L 412.91 333.137   L 409.32 333.707   L 406.016 332.91   L 405.75 332.848   L 404.262 333.383   L 398.711 335.379   L 393.492 333.23   L 392.145 332.672   L 391.113 332.891   L 386.383 333.91   L 384.383 333.215   L 382.297 334.547   L 376.871 333.133   L 373.363 334.68   L 367.77 333.145   L 365.914 332.633   L 365.809 332.648   L 365.809 333.043   C 364.25 333.219 362.535 333.207 360.902 332.957   L 358.773 332.633   L 356.922 333.145   L 351.328 334.68   L 347.82 333.133   L 342.395 334.547   L 340.305 333.215   L 338.309 333.91   L 333.574 332.895   L 332.621 332.691   L 332.621 307.344   L 334.75 307.801   L 336.227 308.117   L 336.992 307.852   L 343.84 305.484   L 347.16 307.605   L 350.438 306.75   L 353.68 308.18   L 356.641 307.363   L 360.492 307.953   L 364.313 308.535   L 364.313 307.934   L 368.047 307.367   L 371.008 308.176   L 374.25 306.75   L 377.531 307.602   L 380.852 305.484   L 387.699 307.852   L 388.465 308.117   L 389.938 307.801   L 395.113 306.691   L 399.195 308.375   L 399.406 308.461   L 399.621 308.383   L 403.895 306.844   L 408.844 308.039   L 410.754 308.496   L 414.133 307.961   L 417.738 307.391   L 419.34 307.781   L 420.5 306.949   Z   M 318.086 333.055   L 315.371 333.707   L 311.781 333.137   L 308.418 332.605   L 306.547 333.059   L 299.641 334.746   L 297.48 333.203   L 293.699 332.793   L 291.184 332.523   L 290.695 332.723   L 284.602 335.242   L 280.234 333.098   L 279.762 333.238   L 279.762 307.25   L 282.988 306.309   L 285.602 307.594   L 286.359 307.277   L 290.801 307.758   L 293.176 308.016   L 293.688 307.789   L 300.953 304.637   L 305.348 307.781   L 306.949 307.391   L 310.559 307.965   L 313.934 308.5   L 315.844 308.039   L 318.086 307.496   Z   M 447.434 381.105   L 444.809 379.965   L 442.133 381.184   L 438.949 380.176   L 436.336 380.055   L 433.051 379.91   L 431.781 380.18   L 426.691 381.293   L 424.523 382.609   L 420.324 380.418   L 419.176 380.582   L 418.512 380.684   L 417.844 380.734   L 413.813 381.012   L 408.176 381.402   L 406.301 379.922   L 404.414 379.77   L 403.023 379.645   L 401.578 379.809   L 398.688 380.141   L 395.98 379.605   L 394.395 379.297   L 392.668 379.805   L 386.695 381.535   L 384.082 380.254   L 383.324 380.57   L 382.836 380.516   L 382.836 353.539   L 385.082 352.609   L 389.445 354.742   L 392.824 353.766   L 397.055 354.602   L 400.172 355.219   L 400.641 355.164   L 402.551 354.941   L 403.98 355.066   L 404.484 354.898   L 411.969 352.402   L 415.816 355.43   L 419.953 351.68   L 423.578 353.574   L 428.277 350.719   L 432.711 355.336   L 434.426 355.406   L 438.547 353.801   L 440.195 354.332   L 444.512 352.352   L 447.434 353.625   Z   M 368.301 382.906   L 364.332 380.07   L 362.734 380.449   L 359.125 379.883   L 355.746 379.352   L 353.836 379.809   L 348.887 381.004   L 344.613 379.469   L 344.398 379.383   L 344.188 379.473   L 340.109 381.152   L 334.934 380.047   L 333.457 379.73   L 332.691 380   L 325.844 382.367   L 322.523 380.246   L 319.246 381.102   L 316.004 379.672   L 313.043 380.484   L 309.191 379.898   L 307.457 379.633   L 307.457 380.309   C 305.453 380.535 303.223 380.445 301.301 379.984   L 299.195 379.473   L 299.051 379.512   L 293.02 380.965   L 292.777 380.836   L 291.043 381.613   L 288.422 380.383   L 284.129 383.098   L 279.762 380.73   L 279.762 354.488   L 282.992 353.883   L 286.543 351.641   L 291.266 353.852   L 293.813 352.715   L 297.035 354.437   L 299.203 353.91   L 303.223 354.883   L 306.59 355.699   L 306.59 354.691   C 307.324 354.715 308.059 354.781 308.781 354.891   L 310.91 355.211   L 312.762 354.703   L 318.355 353.168   L 321.863 354.707   L 327.289 353.301   L 329.379 354.637   L 331.375 353.937   L 336.105 354.957   L 337.137 355.172   L 338.484 354.617   L 343.703 352.469   L 349.254 354.469   L 350.746 355.004   L 351.008 354.937   L 354.313 354.141   L 357.906 354.707   L 361.266 355.238   L 363.137 354.781   L 368.301 353.523   Z   M 422.145 429.578   L 421.871 429.695   L 417.555 427.715   L 415.906 428.242   L 411.785 426.633   L 410.07 426.707   L 405.637 431.328   L 400.938 428.465   L 397.309 430.363   L 393.176 426.617   L 389.469 429.527   L 388.992 429.527   L 381.844 427.148   L 381.336 426.977   L 379.91 427.102   L 378 426.883   L 377.531 426.828   L 374.57 427.41   L 374.57 402.195   L 376.047 401.902   L 378.938 402.234   L 380.383 402.402   L 381.773 402.281   L 383.66 402.121   L 385.535 400.648   L 391.172 401.035   L 395.207 401.312   L 395.871 401.359   L 396.539 401.457   L 397.688 401.625   L 401.883 399.434   L 404.051 400.75   L 409.141 401.859   L 410.41 402.137   L 413.699 401.988   L 416.309 401.867   L 419.492 400.855   L 422.145 402.066   Z   M 360.031 428.445   L 356.348 426.922   L 355.859 426.723   L 353.344 426.988   L 349.563 427.398   L 347.402 428.945   L 340.496 427.258   L 338.625 426.801   L 335.266 427.336   L 331.672 427.902   L 328.367 427.105   L 328.105 427.043   L 326.613 427.582   L 321.063 429.578   L 315.848 427.426   L 314.496 426.871   L 313.469 427.09   L 308.734 428.105   L 306.738 427.414   L 304.648 428.746   L 299.223 427.332   L 295.715 428.879   L 290.121 427.34   L 288.27 426.832   L 288.164 426.848   L 288.164 427.238   C 286.602 427.418 284.887 427.402 283.254 427.156   L 281.129 426.832   L 279.273 427.34   L 273.68 428.879   L 270.172 427.332   L 264.746 428.746   L 262.66 427.41   L 260.66 428.105   L 255.93 427.09   L 254.898 426.871   L 253.551 427.426   L 248.332 429.578   L 247.707 429.352   L 247.707 402.629   L 247.848 402.57   L 251.93 400.887   L 257.105 401.996   L 258.578 402.312   L 259.344 402.047   L 266.191 399.684   L 269.512 401.801   L 272.793 400.945   L 276.035 402.375   L 278.996 401.562   L 282.844 402.148   L 286.668 402.73   L 286.668 402.129   L 290.402 401.562   L 293.363 402.375   L 296.605 400.945   L 299.883 401.797   L 303.203 399.68   L 310.051 402.047   L 310.816 402.312   L 312.293 402   L 317.469 400.887   L 321.547 402.57   L 321.762 402.656   L 321.973 402.582   L 326.246 401.043   L 331.199 402.234   L 333.109 402.691   L 336.484 402.16   L 340.094 401.59   L 341.695 401.977   L 346.09 398.832   L 353.355 401.988   L 353.867 402.207   L 356.242 401.953   L 360.031 401.547   Z   M 442.344 474.516   L 442.332 474.512   L 440.246 475.844   L 434.816 474.43   L 431.309 475.977   L 425.719 474.441   L 423.863 473.93   L 423.758 473.945   L 423.758 474.34   C 422.195 474.516 420.48 474.504 418.852 474.254   L 416.723 473.93   L 414.871 474.441   L 409.277 475.977   L 405.77 474.43   L 400.344 475.844   L 398.254 474.508   L 396.516 475.113   L 396.516 448.602   L 401.785 446.781   L 405.109 448.898   L 408.387 448.047   L 411.629 449.473   L 414.59 448.66   L 418.441 449.246   L 422.262 449.832   L 422.262 449.23   L 425.996 448.66   L 428.957 449.473   L 432.199 448.047   L 435.48 448.898   L 438.801 446.781   L 442.344 448.004   Z   M 381.98 475.977   L 378.375 474.68   L 376.887 474.145   L 376.625 474.211   L 373.32 475.004   L 369.727 474.434   L 366.367 473.902   L 364.496 474.355   L 357.59 476.043   L 355.43 474.496   L 351.648 474.086   L 349.133 473.816   L 348.645 474.02   L 342.551 476.539   L 338.184 474.395   L 334.809 475.379   L 330.574 474.543   L 327.461 473.926   L 326.992 473.98   L 325.082 474.199   L 323.652 474.078   L 323.148 474.246   L 315.664 476.734   L 311.816 473.715   L 307.68 477.457   L 304.055 475.566   L 299.355 478.426   L 294.922 473.805   L 293.207 473.727   L 289.086 475.336   L 287.438 474.816   L 283.121 476.793   L 277.941 474.531   L 275.176 475.344   L 273.555 474.816   L 269.758 476.812   L 263.559 474.902   L 263.035 474.746   L 258.176 476.414   L 256.203 475.148   L 251.691 478.191   L 247.848 475.27   L 247.848 447.922   L 251.777 446.605   L 252.523 447.172   L 255.871 444.914   L 261.742 448.676   L 262.457 448.43   L 266.855 449.785   L 270.898 447.656   L 275.66 449.203   L 279.973 447.941   L 282.82 449.184   L 285.5 447.953   L 288.684 448.969   L 291.293 449.086   L 294.582 449.23   L 295.852 448.957   L 300.941 447.852   L 303.109 446.531   L 307.305 448.723   L 308.453 448.555   L 309.121 448.465   L 299.148 448.41   L 313.82 448.137   L 319.457 447.746   L 321.332 449.219   L 323.219 449.383   L 324.609 449.5   L 326.055 449.328   L 328.945 449   L 331.652 449.535   L 333.238 449.848   L 334.961 449.348   L 340.934 447.605   L 343.551 448.887   L 344.309 448.574   L 348.746 449.055   L 351.125 449.309   L 351.637 449.086   L 358.902 445.93   L 363.297 449.078   L 364.898 448.687   L 368.508 449.258   L 371.883 449.797   L 373.793 449.336   L 378.746 448.137   L 381.98 449.305   Z   M 298.629 495.816   L 298.629 496.031   C 299.074 496.066 299.516 496.121 299.953 496.187   L 302.082 496.504   L 303.938 496   L 309.527 494.461   L 313.035 496.004   L 318.465 494.594   L 320.551 495.93   L 322.551 495.234   L 327.277 496.25   L 328.313 496.473   L 329.656 495.91   L 334.879 493.766   L 340.43 495.762   L 341.918 496.305   L 342.18 496.234   L 345.484 495.441   L 349.078 496   L 352.438 496.535   L 354.309 496.078   L 361.215 494.398   L 363.375 495.937   L 367.156 496.348   L 369.672 496.629   L 370.16 496.426   L 376.254 493.902   L 380.621 496.043   L 383.996 495.059   L 388.23 495.898   L 391.344 496.512   L 391.813 496.461   L 393.723 496.242   L 395.152 496.359   L 395.656 496.195   L 403.141 493.699   L 406.988 496.727   L 411.125 492.973   L 414.75 494.867   L 419.449 492.012   L 423.883 496.633   L 425.598 496.707   L 429.719 495.098   L 431.367 495.629   L 435.684 493.641   L 436.359 493.937   L 436.359 521.422   L 435.984 521.262   L 433.305 522.48   L 430.121 521.469   L 427.512 521.352   L 424.223 521.207   L 422.953 521.48   L 417.863 522.586   L 415.695 523.906   L 411.5 521.711   L 410.352 521.879   L 409.684 521.98   L 409.016 522.027   L 404.984 522.305   L 399.348 522.695   L 397.473 521.219   L 395.586 521.066   L 394.195 520.937   L 392.75 521.102   L 389.859 521.437   L 387.152 520.898   L 385.566 520.594   L 383.844 521.094   L 377.867 522.832   L 375.254 521.551   L 374.496 521.871   L 370.059 521.383   L 367.68 521.133   L 367.168 521.348   L 359.902 524.508   L 355.504 521.363   L 353.906 521.746   L 350.297 521.176   L 346.922 520.645   L 345.012 521.102   L 340.059 522.297   L 335.785 520.762   L 335.57 520.68   L 335.359 520.762   L 331.281 522.445   L 326.105 521.344   L 324.633 521.023   L 323.867 521.297   L 317.016 523.664   L 313.695 521.539   L 310.418 522.402   L 307.176 520.969   L 304.215 521.777   L 300.363 521.195   L 298.629 520.93   L 298.629 520.992   L 297.113 521.363   L 293.094 522.332   L 290.922 521.805   L 287.699 523.531   L 285.156 522.383   L 280.434 524.605   L 279.762 524.18   L 279.762 494.246   L 282.313 495.859   L 284.93 494.625   L 286.664 495.406   L 286.906 495.273   L 292.938 496.734   L 293.082 496.77   L 295.191 496.258   C 296.27 496 297.449 495.852 298.629 495.816   Z   ">
                <Path.RenderTransform>
                    <ScaleTransform ScaleX="-0.07" ScaleY="0.067"/>
                </Path.RenderTransform>
            </Path>
        </Canvas>
    </Button>
</UserControl>

@punker76
Copy link
Owner

@angus42 Ok, got it. It's really the Canvas and the render transform inside the path. Yes, I can use the bounds of the visual source (the ListBoxItem) to translate the preview. I will try to use this and hope that there no other issues will come. As a workaround or even (better) other solution you can use the path also without the Canvas and use the Stretch property.

<Button Height="30" Width="30" Background="DimGray">
  <Path Stretch="Uniform"
        Fill="#FFFFFF"
        StrokeThickness="0"
        StrokeMiterLimit="10"
        StrokeLineJoin="Miter"
        StrokeStartLineCap="Flat"
        StrokeEndLineCap="Flat"
        Data="  M 222.645 217.602   L 226.895 217.602   L 226.895 226.105   L 222.645 226.105   L 168.738 226.105   L 168.738 265.156   L 222.645 265.156   L 226.895 265.156   L 226.895 273.66   L 222.645 273.66   L 197.801 273.66   L 197.801 312.727   L 251.723 312.727   L 255.957 312.727   L 255.957 321.199   L 251.723 321.199   L 197.801 321.199   L 197.801 360.281   L 251.723 360.281   L 255.957 360.281   L 255.957 368.75   L 251.723 368.75   L 197.801 368.75   L 193.566 368.75   L 189.328 368.75   L 189.328 364.516   L 189.328 360.281   L 189.328 273.66   L 168.738 273.66   L 168.738 407.836   L 222.645 407.836   L 226.879 407.836   L 226.879 416.305   L 222.645 416.305   L 168.738 416.305   L 168.738 455.391   L 222.645 455.391   L 226.879 455.391   L 226.879 463.859   L 222.645 463.859   L 197.801 463.859   L 197.801 502.941   L 251.723 502.941   L 255.957 502.941   L 255.957 511.414   L 251.723 511.414   L 197.801 511.414   L 193.566 511.414   L 189.328 511.414   L 189.328 507.18   L 189.328 463.859   L 168.738 463.859   L 168.738 463.875   L 160.234 463.875   L 160.234 459.625   L 160.234 273.66   L 160.234 265.156   L 160.234 226.105   L 160.234 217.602   L 160.234 195.105   L 160.234 190.852   L 168.738 190.852   L 168.738 195.105   L 168.738 217.602   Z   M 132.703 181.48   L 475.785 181.48   L 475.785 551.477   L 132.703 551.477   Z   M 467.785 189.48   L 140.703 189.48   L 140.703 543.477   L 467.785 543.477   Z   M 327.348 211.238   L 328.461 211.641   L 329.949 212.18   L 330.211 212.113   L 333.516 211.32   L 337.109 211.879   L 340.469 212.414   L 342.34 211.957   L 349.246 210.273   L 351.406 211.816   L 355.188 212.227   L 357.703 212.508   L 358.191 212.305   L 364.285 209.781   L 368.648 211.922   L 372.027 210.937   L 376.262 211.777   L 379.375 212.391   L 379.844 212.34   L 381.754 212.121   L 383.184 212.238   L 383.688 212.074   L 391.172 209.578   L 395.02 212.605   L 399.156 208.852   L 402.781 210.746   L 407.48 207.891   L 411.914 212.512   L 413.629 212.586   L 417.75 210.977   L 419.398 211.508   L 423.715 209.52   L 424.391 209.816   L 424.391 237.301   L 424.016 237.141   L 421.336 238.359   L 418.152 237.348   L 415.539 237.23   L 412.254 237.086   L 410.984 237.355   L 405.895 238.465   L 403.727 239.785   L 399.531 237.59   L 398.379 237.758   L 397.715 237.859   L 397.047 237.906   L 393.016 238.184   L 387.379 238.574   L 385.504 237.094   L 383.617 236.941   L 382.227 236.816   L 380.781 236.98   L 377.891 237.316   L 375.184 236.777   L 373.598 236.473   L 371.875 236.973   L 365.898 238.711   L 363.285 237.426   L 362.527 237.75   L 358.09 237.262   L 355.711 237.012   L 355.199 237.227   L 347.934 240.387   L 343.535 237.242   L 341.938 237.625   L 338.328 237.055   L 334.953 236.523   L 333.043 236.98   L 328.09 238.176   L 327.348 237.91   Z   M 312.813 237.012   L 311.816 236.23   L 307.68 239.977   L 304.055 238.082   L 299.355 240.941   L 294.922 236.32   L 293.207 236.246   L 289.086 237.855   L 287.438 237.332   L 283.121 239.309   L 277.941 237.051   L 275.176 237.863   L 273.555 237.332   L 269.758 239.328   L 263.559 237.422   L 263.035 237.262   L 258.176 238.93   L 256.203 237.664   L 251.691 240.707   L 247.848 237.785   L 247.848 210.437   L 251.777 209.121   L 252.523 209.687   L 255.871 207.43   L 261.742 211.191   L 262.457 210.949   L 266.855 212.301   L 270.898 210.176   L 275.66 211.723   L 279.973 210.457   L 282.82 211.699   L 285.5 210.469   L 288.684 211.488   L 291.293 211.602   L 294.582 211.75   L 295.852 211.477   L 300.941 210.367   L 303.109 209.047   L 307.305 211.242   L 308.453 211.074   L 309.121 210.98   L 309.785 210.93   L 312.813 210.723   Z   M 422.477 286.754   L 421.449 286.219   L 420.301 286.387   L 419.637 286.484   L 418.969 286.539   L 414.938 286.812   L 409.301 287.207   L 407.426 285.727   L 405.539 285.57   L 404.148 285.449   L 402.699 285.609   L 399.813 285.945   L 397.105 285.41   L 395.52 285.102   L 393.793 285.605   L 387.82 287.34   L 385.207 286.055   L 384.449 286.371   L 380.008 285.887   L 377.633 285.641   L 377.121 285.855   L 370.086 288.91   L 370.086 259.168   L 371.168 258.902   L 373.328 260.445   L 377.109 260.859   L 379.625 261.133   L 380.113 260.934   L 386.207 258.414   L 390.57 260.547   L 393.949 259.57   L 398.18 260.406   L 401.297 261.02   L 401.766 260.969   L 403.676 260.746   L 405.102 260.871   L 405.609 260.703   L 413.094 258.207   L 416.941 261.23   L 421.078 257.48   L 422.477 258.211   Z   M 355.551 285.469   L 354.961 285.609   L 350.012 286.805   L 345.738 285.27   L 345.523 285.184   L 345.313 285.277   L 341.23 286.953   L 336.059 285.848   L 334.582 285.531   L 333.816 285.805   L 326.969 288.168   L 323.648 286.051   L 320.371 286.906   L 317.129 285.473   L 314.168 286.285   L 310.316 285.699   L 308.582 285.434   L 308.582 286.109   C 306.574 286.336 304.348 286.246 302.426 285.785   L 300.32 285.277   L 300.176 285.312   L 294.145 286.766   L 293.902 286.637   L 292.168 287.418   L 289.547 286.187   L 285.254 288.902   L 279.434 285.746   L 277.168 286.172   L 272.398 289.797   L 267.887 286.758   L 265.914 288.023   L 261.051 286.352   L 260.531 286.508   L 254.328 288.418   L 250.535 286.422   L 248.914 286.949   L 247.848 286.637   L 247.848 260.637   L 248.43 260.809   L 253.191 259.266   L 257.234 261.391   L 261.633 260.035   L 262.348 260.281   L 268.219 256.52   L 271.566 258.777   L 272.313 258.211   L 279.371 260.578   L 284.117 259.684   L 287.668 257.441   L 292.391 259.656   L 294.938 258.516   L 298.16 260.238   L 300.328 259.715   L 304.348 260.687   L 307.715 261.5   L 307.715 260.496   C 308.449 260.516 309.188 260.582 309.906 260.695   L 312.035 261.012   L 313.887 260.508   L 319.48 258.973   L 322.988 260.512   L 328.414 259.102   L 330.5 260.437   L 332.5 259.742   L 337.23 260.762   L 338.262 260.977   L 339.609 260.422   L 344.828 258.27   L 350.379 260.27   L 351.871 260.805   L 352.133 260.738   L 355.438 259.945   L 355.551 259.961   Z   M 420.5 333.637   L 418.141 333.062   L 416.273 332.605   L 412.91 333.137   L 409.32 333.707   L 406.016 332.91   L 405.75 332.848   L 404.262 333.383   L 398.711 335.379   L 393.492 333.23   L 392.145 332.672   L 391.113 332.891   L 386.383 333.91   L 384.383 333.215   L 382.297 334.547   L 376.871 333.133   L 373.363 334.68   L 367.77 333.145   L 365.914 332.633   L 365.809 332.648   L 365.809 333.043   C 364.25 333.219 362.535 333.207 360.902 332.957   L 358.773 332.633   L 356.922 333.145   L 351.328 334.68   L 347.82 333.133   L 342.395 334.547   L 340.305 333.215   L 338.309 333.91   L 333.574 332.895   L 332.621 332.691   L 332.621 307.344   L 334.75 307.801   L 336.227 308.117   L 336.992 307.852   L 343.84 305.484   L 347.16 307.605   L 350.438 306.75   L 353.68 308.18   L 356.641 307.363   L 360.492 307.953   L 364.313 308.535   L 364.313 307.934   L 368.047 307.367   L 371.008 308.176   L 374.25 306.75   L 377.531 307.602   L 380.852 305.484   L 387.699 307.852   L 388.465 308.117   L 389.938 307.801   L 395.113 306.691   L 399.195 308.375   L 399.406 308.461   L 399.621 308.383   L 403.895 306.844   L 408.844 308.039   L 410.754 308.496   L 414.133 307.961   L 417.738 307.391   L 419.34 307.781   L 420.5 306.949   Z   M 318.086 333.055   L 315.371 333.707   L 311.781 333.137   L 308.418 332.605   L 306.547 333.059   L 299.641 334.746   L 297.48 333.203   L 293.699 332.793   L 291.184 332.523   L 290.695 332.723   L 284.602 335.242   L 280.234 333.098   L 279.762 333.238   L 279.762 307.25   L 282.988 306.309   L 285.602 307.594   L 286.359 307.277   L 290.801 307.758   L 293.176 308.016   L 293.688 307.789   L 300.953 304.637   L 305.348 307.781   L 306.949 307.391   L 310.559 307.965   L 313.934 308.5   L 315.844 308.039   L 318.086 307.496   Z   M 447.434 381.105   L 444.809 379.965   L 442.133 381.184   L 438.949 380.176   L 436.336 380.055   L 433.051 379.91   L 431.781 380.18   L 426.691 381.293   L 424.523 382.609   L 420.324 380.418   L 419.176 380.582   L 418.512 380.684   L 417.844 380.734   L 413.813 381.012   L 408.176 381.402   L 406.301 379.922   L 404.414 379.77   L 403.023 379.645   L 401.578 379.809   L 398.688 380.141   L 395.98 379.605   L 394.395 379.297   L 392.668 379.805   L 386.695 381.535   L 384.082 380.254   L 383.324 380.57   L 382.836 380.516   L 382.836 353.539   L 385.082 352.609   L 389.445 354.742   L 392.824 353.766   L 397.055 354.602   L 400.172 355.219   L 400.641 355.164   L 402.551 354.941   L 403.98 355.066   L 404.484 354.898   L 411.969 352.402   L 415.816 355.43   L 419.953 351.68   L 423.578 353.574   L 428.277 350.719   L 432.711 355.336   L 434.426 355.406   L 438.547 353.801   L 440.195 354.332   L 444.512 352.352   L 447.434 353.625   Z   M 368.301 382.906   L 364.332 380.07   L 362.734 380.449   L 359.125 379.883   L 355.746 379.352   L 353.836 379.809   L 348.887 381.004   L 344.613 379.469   L 344.398 379.383   L 344.188 379.473   L 340.109 381.152   L 334.934 380.047   L 333.457 379.73   L 332.691 380   L 325.844 382.367   L 322.523 380.246   L 319.246 381.102   L 316.004 379.672   L 313.043 380.484   L 309.191 379.898   L 307.457 379.633   L 307.457 380.309   C 305.453 380.535 303.223 380.445 301.301 379.984   L 299.195 379.473   L 299.051 379.512   L 293.02 380.965   L 292.777 380.836   L 291.043 381.613   L 288.422 380.383   L 284.129 383.098   L 279.762 380.73   L 279.762 354.488   L 282.992 353.883   L 286.543 351.641   L 291.266 353.852   L 293.813 352.715   L 297.035 354.437   L 299.203 353.91   L 303.223 354.883   L 306.59 355.699   L 306.59 354.691   C 307.324 354.715 308.059 354.781 308.781 354.891   L 310.91 355.211   L 312.762 354.703   L 318.355 353.168   L 321.863 354.707   L 327.289 353.301   L 329.379 354.637   L 331.375 353.937   L 336.105 354.957   L 337.137 355.172   L 338.484 354.617   L 343.703 352.469   L 349.254 354.469   L 350.746 355.004   L 351.008 354.937   L 354.313 354.141   L 357.906 354.707   L 361.266 355.238   L 363.137 354.781   L 368.301 353.523   Z   M 422.145 429.578   L 421.871 429.695   L 417.555 427.715   L 415.906 428.242   L 411.785 426.633   L 410.07 426.707   L 405.637 431.328   L 400.938 428.465   L 397.309 430.363   L 393.176 426.617   L 389.469 429.527   L 388.992 429.527   L 381.844 427.148   L 381.336 426.977   L 379.91 427.102   L 378 426.883   L 377.531 426.828   L 374.57 427.41   L 374.57 402.195   L 376.047 401.902   L 378.938 402.234   L 380.383 402.402   L 381.773 402.281   L 383.66 402.121   L 385.535 400.648   L 391.172 401.035   L 395.207 401.312   L 395.871 401.359   L 396.539 401.457   L 397.688 401.625   L 401.883 399.434   L 404.051 400.75   L 409.141 401.859   L 410.41 402.137   L 413.699 401.988   L 416.309 401.867   L 419.492 400.855   L 422.145 402.066   Z   M 360.031 428.445   L 356.348 426.922   L 355.859 426.723   L 353.344 426.988   L 349.563 427.398   L 347.402 428.945   L 340.496 427.258   L 338.625 426.801   L 335.266 427.336   L 331.672 427.902   L 328.367 427.105   L 328.105 427.043   L 326.613 427.582   L 321.063 429.578   L 315.848 427.426   L 314.496 426.871   L 313.469 427.09   L 308.734 428.105   L 306.738 427.414   L 304.648 428.746   L 299.223 427.332   L 295.715 428.879   L 290.121 427.34   L 288.27 426.832   L 288.164 426.848   L 288.164 427.238   C 286.602 427.418 284.887 427.402 283.254 427.156   L 281.129 426.832   L 279.273 427.34   L 273.68 428.879   L 270.172 427.332   L 264.746 428.746   L 262.66 427.41   L 260.66 428.105   L 255.93 427.09   L 254.898 426.871   L 253.551 427.426   L 248.332 429.578   L 247.707 429.352   L 247.707 402.629   L 247.848 402.57   L 251.93 400.887   L 257.105 401.996   L 258.578 402.312   L 259.344 402.047   L 266.191 399.684   L 269.512 401.801   L 272.793 400.945   L 276.035 402.375   L 278.996 401.562   L 282.844 402.148   L 286.668 402.73   L 286.668 402.129   L 290.402 401.562   L 293.363 402.375   L 296.605 400.945   L 299.883 401.797   L 303.203 399.68   L 310.051 402.047   L 310.816 402.312   L 312.293 402   L 317.469 400.887   L 321.547 402.57   L 321.762 402.656   L 321.973 402.582   L 326.246 401.043   L 331.199 402.234   L 333.109 402.691   L 336.484 402.16   L 340.094 401.59   L 341.695 401.977   L 346.09 398.832   L 353.355 401.988   L 353.867 402.207   L 356.242 401.953   L 360.031 401.547   Z   M 442.344 474.516   L 442.332 474.512   L 440.246 475.844   L 434.816 474.43   L 431.309 475.977   L 425.719 474.441   L 423.863 473.93   L 423.758 473.945   L 423.758 474.34   C 422.195 474.516 420.48 474.504 418.852 474.254   L 416.723 473.93   L 414.871 474.441   L 409.277 475.977   L 405.77 474.43   L 400.344 475.844   L 398.254 474.508   L 396.516 475.113   L 396.516 448.602   L 401.785 446.781   L 405.109 448.898   L 408.387 448.047   L 411.629 449.473   L 414.59 448.66   L 418.441 449.246   L 422.262 449.832   L 422.262 449.23   L 425.996 448.66   L 428.957 449.473   L 432.199 448.047   L 435.48 448.898   L 438.801 446.781   L 442.344 448.004   Z   M 381.98 475.977   L 378.375 474.68   L 376.887 474.145   L 376.625 474.211   L 373.32 475.004   L 369.727 474.434   L 366.367 473.902   L 364.496 474.355   L 357.59 476.043   L 355.43 474.496   L 351.648 474.086   L 349.133 473.816   L 348.645 474.02   L 342.551 476.539   L 338.184 474.395   L 334.809 475.379   L 330.574 474.543   L 327.461 473.926   L 326.992 473.98   L 325.082 474.199   L 323.652 474.078   L 323.148 474.246   L 315.664 476.734   L 311.816 473.715   L 307.68 477.457   L 304.055 475.566   L 299.355 478.426   L 294.922 473.805   L 293.207 473.727   L 289.086 475.336   L 287.438 474.816   L 283.121 476.793   L 277.941 474.531   L 275.176 475.344   L 273.555 474.816   L 269.758 476.812   L 263.559 474.902   L 263.035 474.746   L 258.176 476.414   L 256.203 475.148   L 251.691 478.191   L 247.848 475.27   L 247.848 447.922   L 251.777 446.605   L 252.523 447.172   L 255.871 444.914   L 261.742 448.676   L 262.457 448.43   L 266.855 449.785   L 270.898 447.656   L 275.66 449.203   L 279.973 447.941   L 282.82 449.184   L 285.5 447.953   L 288.684 448.969   L 291.293 449.086   L 294.582 449.23   L 295.852 448.957   L 300.941 447.852   L 303.109 446.531   L 307.305 448.723   L 308.453 448.555   L 309.121 448.465   L 299.148 448.41   L 313.82 448.137   L 319.457 447.746   L 321.332 449.219   L 323.219 449.383   L 324.609 449.5   L 326.055 449.328   L 328.945 449   L 331.652 449.535   L 333.238 449.848   L 334.961 449.348   L 340.934 447.605   L 343.551 448.887   L 344.309 448.574   L 348.746 449.055   L 351.125 449.309   L 351.637 449.086   L 358.902 445.93   L 363.297 449.078   L 364.898 448.687   L 368.508 449.258   L 371.883 449.797   L 373.793 449.336   L 378.746 448.137   L 381.98 449.305   Z   M 298.629 495.816   L 298.629 496.031   C 299.074 496.066 299.516 496.121 299.953 496.187   L 302.082 496.504   L 303.938 496   L 309.527 494.461   L 313.035 496.004   L 318.465 494.594   L 320.551 495.93   L 322.551 495.234   L 327.277 496.25   L 328.313 496.473   L 329.656 495.91   L 334.879 493.766   L 340.43 495.762   L 341.918 496.305   L 342.18 496.234   L 345.484 495.441   L 349.078 496   L 352.438 496.535   L 354.309 496.078   L 361.215 494.398   L 363.375 495.937   L 367.156 496.348   L 369.672 496.629   L 370.16 496.426   L 376.254 493.902   L 380.621 496.043   L 383.996 495.059   L 388.23 495.898   L 391.344 496.512   L 391.813 496.461   L 393.723 496.242   L 395.152 496.359   L 395.656 496.195   L 403.141 493.699   L 406.988 496.727   L 411.125 492.973   L 414.75 494.867   L 419.449 492.012   L 423.883 496.633   L 425.598 496.707   L 429.719 495.098   L 431.367 495.629   L 435.684 493.641   L 436.359 493.937   L 436.359 521.422   L 435.984 521.262   L 433.305 522.48   L 430.121 521.469   L 427.512 521.352   L 424.223 521.207   L 422.953 521.48   L 417.863 522.586   L 415.695 523.906   L 411.5 521.711   L 410.352 521.879   L 409.684 521.98   L 409.016 522.027   L 404.984 522.305   L 399.348 522.695   L 397.473 521.219   L 395.586 521.066   L 394.195 520.937   L 392.75 521.102   L 389.859 521.437   L 387.152 520.898   L 385.566 520.594   L 383.844 521.094   L 377.867 522.832   L 375.254 521.551   L 374.496 521.871   L 370.059 521.383   L 367.68 521.133   L 367.168 521.348   L 359.902 524.508   L 355.504 521.363   L 353.906 521.746   L 350.297 521.176   L 346.922 520.645   L 345.012 521.102   L 340.059 522.297   L 335.785 520.762   L 335.57 520.68   L 335.359 520.762   L 331.281 522.445   L 326.105 521.344   L 324.633 521.023   L 323.867 521.297   L 317.016 523.664   L 313.695 521.539   L 310.418 522.402   L 307.176 520.969   L 304.215 521.777   L 300.363 521.195   L 298.629 520.93   L 298.629 520.992   L 297.113 521.363   L 293.094 522.332   L 290.922 521.805   L 287.699 523.531   L 285.156 522.383   L 280.434 524.605   L 279.762 524.18   L 279.762 494.246   L 282.313 495.859   L 284.93 494.625   L 286.664 495.406   L 286.906 495.273   L 292.938 496.734   L 293.082 496.77   L 295.191 496.258   C 296.27 496 297.449 495.852 298.629 495.816   Z   " />
</Button>

image

@angus42
Copy link
Author

angus42 commented Aug 27, 2021

Agreed that using the path without the Canvas is better XAML. Still had to do a little scale transformation by 50% even with the Stretch="Uniform". But with that and the develop branch it now works under all situations I can come up with. Thx.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants