2011-04-19 11 views

उत्तर

7

पहला सवाल: क्यों आप पूरे खिड़की घुमाना चाहते हैं?

तुम सच में की जरूरत है:
आप सामान्य WPF खिड़की बारी बारी से नहीं कर सकते। देखें: Rotate Window

आपको एक सीमा रहित विंडो बनाना होगा और उसे यूआई प्रदान करना होगा। देखें: WPF Non-Client Area Design Techniques For Custom Window Frames

घुमाया खिड़की से देखने के लिए:
सेट:

  • AllowTransparency संपत्ति सच करने के लिए।
  • पारदर्शी

को निकालें खिड़की क्रोम के लिए कोई भी

  • पृष्ठभूमि को WindowStyle एक सीमा (या कुछ भी आयत, वृत्त, अंडाकार, आदि जैसे सार्थक) विंडो की सामग्री के रूप में और के निम्नलिखित गुण शामिल करें सीमा:

    • सफेद पृष्ठभूमि (या किसी भी अपारदर्शी रंग)
    • घुमाने परिवर्तन, और
    • +०१२३५१६४१०६१
    • छोटे आकार (ताकि खिड़की के अंदर घूमते समय फिट हो)।

    सीमा आपके विंडो पर यूआई प्रदान करेगी।


    अपनी सीमाहीन खिड़की बनाने के कैवाएट से अवगत रहें, क्योंकि यह आपको खिड़की इंटरफेस प्रदान करने की आवश्यकता है जैसे न्यूनतम, अधिकतम, बंद बटन; और कुछ अप्रबंधित कोड की आवश्यकता हो सकती है।
    इसके अलावा, नीचे नमूना कोड में, घुमाए जाने पर सीमा को खिड़की की सीमाओं के भीतर रखा जाना चाहिए, अन्यथा यह (और आपकी कस्टम विंडो) छंटनी की जाएगी।

    नमूना कोड

    <Window x:Class="CustomWindowStyle.MainWindow" 
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
         AllowsTransparency="True" WindowStyle="None" Background="Transparent" 
         Title="MainWindow" Height="600" Width="600"> 
    
         <Border BorderBrush="Green" BorderThickness="2" Background="White" Width="360" Height="360"> 
          <Border.RenderTransform> 
           <RotateTransform Angle="-45" CenterX="180" CenterY="180"/> 
          </Border.RenderTransform> 
          <Grid> 
           <Grid.RowDefinitions> 
            <RowDefinition Height="23" /> 
            <RowDefinition Height="*" /> 
           </Grid.RowDefinitions> 
           <Button Grid.Row="0" Content="X" Height="23" Width="23" Name="button1" HorizontalAlignment="Right" VerticalAlignment="Top" Click="button1_Click"/> 
           <Grid Grid.Row="1"> 
            <!--Main window content goes here--> 
            <TextBlock Text="Main window content goes here" HorizontalAlignment="Center" /> 
           </Grid> 
          </Grid> 
         </Border> 
    </Window> 
    
  • +1

    धन्यवाद, मैं उपयोगकर्ता नियंत्रण सहभागी खिड़की बारी बारी से करने के लिए एप्लिकेशन अधिक दिलचस्प बनाने के देना चाहता था। यह ऐप जैसा गेम है, इसलिए खिड़की अभिविन्यास के आधार पर गुरुत्वाकर्षण को नियंत्रित करना चाहता था, मुझे पता है कि यह मूर्ख है लेकिन यह विचार है। –

    +2

    मुझे एक झटका था कि यह ऐप जैसे कुछ गेम के लिए होना चाहिए। :) वैसे भी, इसे जोड़ना चाहते हैं (हालांकि निहित): 1।सीमा को किसी भी अर्थपूर्ण के साथ प्रतिस्थापित किया जा सकता है उदा। अंडाकार, सर्कल, इत्यादि।, 2. सीमा पृष्ठभूमि के लिए जरूरी नहीं है कि सफेद हो - यह कोई गैर-पारदर्शी रंग हो सकता है। – publicgk

    1

    जहां तक ​​मुझे पता है कि आप एक पूरी खिड़की घुमा नहीं सकते हैं, लेकिन आप खिड़की के अंदर सबकुछ कस्टम नियंत्रण में डाल सकते हैं और कस्टम नियंत्रण में एक रेंडरट्रांसफॉर्म ऑब्जेक्ट लागू कर सकते हैं।

    उदाहरण (कुछ सरल):

    http://www.codeproject.com/KB/WPF/TransformationsIntro.aspx

    - दान

    संबंधित मुद्दे