ವರ್ಗ ಆರ್ಕೈವ್ಸ್: ವಿಂಡೋಸ್ ಅಂಗಡಿ

ತ್ವರಿತ ಮತ್ತು ಸುಲಭ: ಒಂದು ವಿಂಡೋಸ್ ಅಂಗಡಿ ಅಪ್ಲಿಕೇಶನ್ ಒಂದು ಪಟ್ಟಿ ಬಾಕ್ಸ್ ನಲ್ಲಿ ಐಟಂಗಳ ಗಾತ್ರ ಹೊಂದಿಸಿ

ನಾನು ಸೃಷ್ಟಿಸುವ ಬಾಗುತ್ತೇನೆ ಒಂದು ವಿಂಡೋಸ್ ಅಂಗಡಿ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ, ನಾನು ಬಳಕೆದಾರ ವಿವಿಧ ಮಾಹಿತಿ ಸಂದೇಶಗಳನ್ನು ತೋರಿಸಲು ಬಯಸುವ.  ಅವರು ಮತ್ತು ಎಲ್ಲಾ ಉತ್ತಮ ವಿಷಯವನ್ನು ಚಲಿಸಬಹುದು ಎಷ್ಟು ಸಾಧನವಾಗಿ ಇದು ತೋರಿಸಲು ಮಾಹಿತಿ ನಾನು ListBox ಆಯ್ಕೆ. 

ಸಂದೇಶಗಳನ್ನು ಮಾತ್ರ ಮಾಹಿತಿ ಇವೆ, ಆದ್ದರಿಂದ ಬಳಕೆದಾರರು ಏನು ಅವರನ್ನು ಆಯ್ಕೆ ಎಂದಿಗೂ ಏಕೆಂದರೆ ಅವುಗಳನ್ನು ಸುಮಾರು ಎಲ್ಲಾ ಹೆಚ್ಚುವರಿ ಜಾಗಗಳನ್ನು ನೀಡಲು ಅಗತ್ಯವಿಲ್ಲ.  ListBox ಡೀಫಾಲ್ಟ್ ನಡವಳಿಕೆಯನ್ನು ಪ್ಯಾಡಿಂಗ್ ಒಂದು ಗಣನೀಯ ಪ್ರಮಾಣದ ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ನಾನು ಅದನ್ನು ತೊಡೆದುಹಾಕಲು ಬಯಸಿದರು.  ವೆಲ್ .... ನೀವು ನೇರವಾಗಿ ListBox ಮೇಲೆ ವಿಷಯ ಆ ರೀತಿಯ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.  ಹೇಗಾದರೂ, ನೀವು ಸೇರಿಸಲು ಐಟಂಗಳನ್ನು ಅದನ್ನು ಮಾಡಬಹುದು:

        ಖಾಸಗಿ ಶೂನ್ಯವಾಗುವ AddGameStateLogMessage(ದಾರ theMessage)
        {
            ಪಠ್ಯಪೆಟ್ಟಿಗೆ ಟಿ = ಹೊಸ ಪಠ್ಯಪೆಟ್ಟಿಗೆ();
            t.Text = GameStateCounter   + ": " + theMessage;
            = TextWrapping.Wrap t.TextWrapping;
            t.MinWidth = 400;
            ದಪ್ಪ = thisPadding ಹೊಸ ದಪ್ಪ(5, 0, 5, 0);
            = thisPadding t.Padding;
            = t.FontSize 12;

            ListBoxItem ಎಂದು = ಹೊಸ ListBoxItem();
            li.Content = T;
            li.MaxHeight = 25;
            = thisPadding ಹೊಸ ದಪ್ಪ(5, 0, 5, 0);
            = thisPadding li.Padding;

            GameStateLog.Items.Insert(0,ಲಿ);
        }

ಮೇಲೆ ರಲ್ಲಿ, ನಾನು ಪಠ್ಯಪೆಟ್ಟಿಗೆ ರಚಿಸುವ ಮತ್ತು ಅದರ ಫಾಂಟ್ ಅನ್ನು ಬಾಗುತ್ತೇನೆ, ಅದರ ಪ್ಯಾಡಿಂಗ್, ಇತ್ಯಾದಿ.

ಮುಂದೆ, ನಾನು ListBoxItem ರಚಿಸಲು ಮತ್ತು ಫಾರ್ಮ್ಯಾಟ್ ಪಠ್ಯಪೆಟ್ಟಿಗೆ ತನ್ನ ವಿಷಯವನ್ನು ಸೆಟ್.

ಅಂತಿಮವಾಗಿ, ನಾನು ListBox ಒಳಗೆ ListBoxItem ಸೇರಿಸಿ.  (ನಾನು ಪಟ್ಟಿಯಲ್ಲಿ ಮೇಲ್ಭಾಗದಲ್ಲಿ ತೀರಾ ಇತ್ತೀಚೆಗಿನ ಸಂದೇಶಗಳನ್ನು ತೋರಿಸಲು ಬಯಸುವ, ಆದ್ದರಿಂದ ಸೇರಿಸಿ(0,ಲಿ) ಬದಲಿಗೆ ಒಂದು ಸರಳ ಸೇರಿಸಿ ಆಫ್() ಆವಾಹನೆ.).

ನಾನು ListBox ವರ್ತನೆಯನ್ನು ಆದರೆ ಅತ್ಯಂತ ಸಫಲ ಬಂದಿದೆ ಮೇಲೆ ತೋರಿಸಿದ ಮಾದರಿಯ ತುಂಬಾ ಸಂತೋಷವಾಗಿದೆ ಮೊದಲು ನಾನು ಈ ಒಂದು ಬಿಟ್ tweaking ಇರುತ್ತದೆ.  ಆಶಾದಾಯಕವಾಗಿ ಬೇರೆಯವರಿಗೆ ಇದು ಸಹಾಯಕವಾಗಿದೆಯೆ ಕಂಡುಕೊಳ್ಳುತ್ತಾನೆ.

</ಕೊನೆಯಲ್ಲಿ>

undefinedನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ನಲ್ಲಿ ಟ್ವಿಟ್ಟರ್ ನನ್ನನ್ನು ಅನುಸರಿಸಿ http://www.twitter.com/pagalvin

ತ್ವರಿತ ಮತ್ತು ಸುಲಭ: ಒಂದು ವಿಂಡೋಸ್ ಅಂಗಡಿ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ # ಸಿ ಬಳಸಿಕೊಂಡು ಒಂದು ಆಯತ ಸರಿಸಿ

ನನ್ನ ಒಟ್ಟಾರೆ ಬ್ಲಾಗ್ ತತ್ವಶಾಸ್ತ್ರ ಇದು ಹಳೆಯ ಬಗ್ಗೆ ಬ್ಲಾಗ್ ಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಫೈನ್ ಇಲ್ಲಿದೆ ಎಂಬುದು, ಬೇರೆಡೆ ಸಾವಿಗೆ ಮುಚ್ಚಲಾಗಿತ್ತು ಎಂದು ವಿಷಯಗಳ ನೆಲೆಸಿದರು.  ನಾನು ಈ ವಿಷಯವನ್ನು ಆ ಒಂದಾಗಿದೆ ಊಹಿಸುತ್ತವೆ, ಆದರೆ ನಾನು ಹೇಗಾದರೂ ಇದು ಬ್ಲಾಗಿಂಗ್ ಬಾಗುತ್ತೇನೆ.

ನಾನು ವಿಂಡೋ ಸ್ಟೋರ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಲಾಗಿದೆ ಬಂದಿದೆ ಮತ್ತು ನಾನು ಕೆಲವು ಪ್ರೇರಣೆಯು ಮಾಡಬೇಕಾದ್ದು ಅಲ್ಲಿ ಭಾಗವಾಗಿತ್ತು ಮನುಷ್ಯ.  ನಿವೃತ್ತಿಗೆ, I’ve been figuring out bits and pieces of windows store app animation which, as it turns out, is quite close to, but not exactly like, XAML based animations in .NET (I’m still coming to grips with the fact that WinRT <> .NET 🙂 ).

This morning I wanted to get a handle on drag and drop operations.  En route to that, I got bogged down moving a rectangle instead :).  Here’s the code that moves a rectangle when the user clicks a button:

   1:   
   2:              MatrixTransform ct = (MatrixTransform)rectBig.RenderTransform;
   3:              Matrix m = ct.Matrix;
   4:              m.OffsetX  = 10;
   5:              m.OffsetY  = 10;
   6:              ct.Matrix = m;
   7:              rectBig.RenderTransform = ct;

The trick here is that I can’t directly change OffsetX or OffsetY.  There may be a more clever way of doing this (and if you know and feel like, please post in the comments). 

In order to do this, I need to:

1. Get the MatrixTransform of the rectangle (by casting RenderTransform).

2. Get the Matrix of that guy.

3. Change the Matrix’s offsets.

4. Reassign the Matrix back to the MatrixTransform.

5. Reassign the MatrixTransform back to the Rectangle.

To test it, I put a rectangle and button the screen. When I click the button, the above logic executes and moves the rectangle immediately.

ಕೆಲವು ಹಂತದಲ್ಲಿ, I’d like to animate this but I have no idea how to get a DoubleAnimation to work on it (Storyboard.SetTargetProperty() is a mystery to me on this for the time being).

</ಕೊನೆಯಲ್ಲಿ>

undefinedನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ನಲ್ಲಿ ಟ್ವಿಟ್ಟರ್ ನನ್ನನ್ನು ಅನುಸರಿಸಿ http://www.twitter.com/pagalvin

ವಿಂಡೋಸ್ ಅಂಗಡಿ ಅಪ್ಲಿಕೇಶನ್ ಫಾರ್ ಸರಣಿಬದ್ಧವಾಗಿ ಒಂದು ListBox ರಲ್ಲಿ ListboxItems ಆಫ್ ಎತ್ತರ ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ

I’m working on a windows store application and one of the things I want to do in the app is display a log that shows status messages and other informational tidbits as the user works things. ನಿವೃತ್ತಿಗೆ, ನಾನು ListBox ಮಾಹಿತಿ ಅನುಸರಿಸುತ್ತದೆ ಸೇರಿಸಲಾಗಿದೆ:

<ListBox X:= ಹೆಸರಿಸಿ"GameStateLog" = HorizontalAlignment"ಕೇಂದ್ರ" ಎತ್ತರ ="221" = VerticalAlignment"ಟಾಪ್" ಅಗಲ ="499" ಪ್ಯಾಡಿಂಗ್ ="0" = FontSize"10">

 

ರನ್ಟೈಮ್ ನಲ್ಲಿ listbox ಜನಪ್ರಿಯಗೊಳಿಸುವುದಕ್ಕೆ C # ಕೋಡ್ ಸಾಲುಗಳನ್ನು ನುದ್ದಕ್ಕೂ:

GameStateLog.Items.Insert(0, GameStateCounter   + ": ಹೊಸ ಆಟದ ರಾಜ್ಯದ: ಆಟಗಾರ ಕಾಯುತ್ತಿದೆ 1 ಹೆಸರು");

This worked out fine enough but the UI showed a crazy amount of padding around the individual messages as they were added. ನಾನು ಅಂತಿಮ ಬಳಕೆದಾರರಿಗೆ ಈ ಐಟಂಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಆದರೆ ನಾನು ಲಾಗ್ ಸಂದೇಶಗಳನ್ನು ಚಾಲನೆಯಲ್ಲಿರುವ ಸರಣಿಯಲ್ಲಿ ತೋರಿಸಲು ಬಯಸಿದಾಗ ಅರ್ಥದಲ್ಲಿ ಮಾಡುವುದಿಲ್ಲ ಸಾಧ್ಯವಾಗುತ್ತದೆ ಬಯಸಿದರೆ ಸಮಂಜಸವೇ ಎಂದು - ಬಳಕೆದಾರರು ಈ ಆಯ್ಕೆ ಮಾಡುವುದಿಲ್ಲ, just view them. ಇದು ತಾರ್ಕಿಕವಾಗಿ ಇದನ್ನು ಮಾಡಲು ಒಂದು ಸುಲಭ ಮಾರ್ಗ ಹುಡುಕಲು ಆಶ್ಚರ್ಯಕರವಾಗಿ ಹಾರ್ಡ್ ಮತ್ತು, the way I found it isn’t necessarily “easy” but I got it working OK. ಪ್ರಮುಖ ಒಳನೋಟವನ್ನು ಈ ಪೋಸ್ಟ್ ಬಂದ ಇಲ್ಲಿ (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) from Bob Relyea. ಬದಲಿಗೆ ListBox ಮೇಲೆ ಐಟಂಗಳು ಸಂಗ್ರಹಕ್ಕೆ ತಂತಿಗಳನ್ನು ಸೇರಿಸುವ, add ListBoxItems. ಸ್ಟ್ರಿಂಗ್ ಸೇರಿಸುವುದರಿಂದ, the ListBox was creating its own ListBoxItem on its own. I wasn’t able to affect anything about that ListBoxItem after the fact. ಹೊಸ ಸಂಕೇತಗಳನ್ನು:

        ಖಾಸಗಿ ಶೂನ್ಯವಾಗುವ AddGameStateLogMessage(ದಾರ theMessage)
        {
            ListBoxItem ಎಂದು = ಹೊಸ ListBoxItem();
            li.Content = theMessage;
            li.MaxHeight = 25;

            ದಪ್ಪ = thisPadding ಹೊಸ ದಪ್ಪ(5, 0, 5, 0);
            = thisPadding li.Padding;

            GameStateLog.Items.Insert(0,ಲಿ);
        }

 

Here I’m creating ListBoxItem’s and inserting them. ನಾನು ಅದರ ದಪ್ಪ ಹೊಂದಿಸುವ ಮೂಲಕ ಹೆಚ್ಚುವರಿ ಪ್ಯಾಡಿಂಗ್ ತೆಗೆದುಹಾಕಲಾಗಿದೆ.

ನಾನು ಸಂದೇಶಗಳ ನಿರ್ದಿಷ್ಟ ಪ್ರಕಾರದ ಹೈಲೈಟ್ ಮಾಡಲು ಕೋಡಿಂಗ್ ಕೆಲವು ಬಣ್ಣ ಏನು ಮತ್ತು ನೇರವಾಗಿ ListBoxItems ಸೇರಿಸುವ ಮೂಲಕ ನಾನು ಶೈಲಿ ಅವುಗಳನ್ನು ನಾನು ಬಯಸುವ ಯಾವುದೇ ರೀತಿಯಲ್ಲಿ ಪಡೆಯಲು ಉದ್ದೇಶ ಇಲ್ಲ ಎಂದು ಈ ಬಹಳ ಮೃದುವಾಗಿರುತ್ತದೆ.

ಈ ಯಾರಾದರೂ ಸಹಾಯ ಭಾವಿಸುತ್ತೇವೆ!

</ಕೊನೆಯಲ್ಲಿ>

undefinedನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ನಲ್ಲಿ ಟ್ವಿಟ್ಟರ್ ನನ್ನನ್ನು ಅನುಸರಿಸಿ http://www.twitter.com/pagalvin