Я використовую два способи відносного розміру. У мене є клас, який називається Relative
з трьома приєднаними властивостями To
, WidthPercent
і HeightPercent
це корисно, якщо я хочу, щоб елемент був відносним розміром елемента в будь-якому місці візуального дерева і відчував себе менш хитким, ніж підхід перетворювача - хоча використовуйте те, що працює для вас, щоб ви задоволений.
Інший підхід є досить хитрішим. Додайте ViewBox
туди, де ви хочете відносних розмірів всередині, потім всередині цього, додайте Grid
ширину 100. Потім, якщо ви додасте TextBlock
ширину 10 всередині, це, очевидно, 10% від 100.
ViewBox
Буде масштабувати в Grid
відповідно до будь-простором , яке було дано, так що якщо його єдине на сторінці, то Grid
буде масштабироваться повною шириною і ефективно, ваш TextBlock
масштабируются до 10% сторінки.
Якщо ви не встановите висоту, Grid
то вона зменшиться, щоб відповідати її вмісту, тому всі вони будуть відносно розмірами. Вам доведеться переконатися, що вміст не надто високий, тобто починає змінювати співвідношення сторін місця, наданого ViewBox
іншому, він також почне масштабувати висоту. Ви , напевно , можете обійти це з Stretch
з UniformToFill
.