PDA

View Full Version : سوال: Clip کردن کنترل داخلی بر اساس کنترل خارجی



PetekDincos
یک شنبه 29 خرداد 1390, 13:44 عصر
با سلام
مثلا داخل یک Border کنترلی مثل ProgressBar وجود دارد من می خواهم وقتی CornerRadius بوردر را 30 کردم کنترل ProgressBar نیز محدوده اش داخل کنترل Border باقی بماند با تشکر

PetekDincos
یک شنبه 29 خرداد 1390, 18:22 عصر
با سلام
اولا نمی دونم چرا امروز این سایت حرکات آهسته نشون می ده مدیران یه فکری بکنند اما در مورد سوال خودم برای Clip کردن یک کنترل به صورت CornerRadius که چهار گوشه رو می شه تنظیم کرد با استفاده از خاصیت Clip. هر کنترل نمی شد و در RectangleGeometry بایستی RadiusX و RadiusY رو می دادی که x, y رو تنظیم می کردی که چهار گوشه رو به یک شکل می کرد اما با استفاده از OpacityMask به صورت کد زیر می شه حالت CornerRadius رو برای کنترلها ایجاد کرد


<Border BorderThickness="0" Name="mask" Background="White" CornerRadius="0,0,0,17" />

<ProgressBar HorizontalAlignment="Stretch" Name="Progress_Status" >
<!-- Use a VisualBrush of 'mask' as the opacity mask -->
<ProgressBar.OpacityMask>
<VisualBrush Visual="{Binding ElementName=mask}"/>
</ProgressBar.OpacityMask>
</ProgressBar>

با تشکر

مهدی فرزاد
یک شنبه 29 خرداد 1390, 20:48 عصر
سلام
هرچند شما الان به یک نتیجه رسیدید اما این کار رو نمیشه واقعا اصولی دونست ، بهترین راه و بهترین کار تعریف یک استایل جدید برای ProgressBar هست که گوشه های اون به اندازه دلخواه شما گرد باشه و حتی در یک Border قرار گرفته باشه وسپس استفاده از اون در برنامه هست