بایگانی دسته بندی: Windows Store

دسترسی سریع و آسان: تنظیم اندازه از یک آیتم در یک لیست باکس در فروشگاه App ویندوز

In a Windows Store App I’m creating, I want to show the user various informational messages.  I picked a ListBox as the tool to show it so that they can scroll through them and all that good stuff. 

The messages are informational only, so there’s no need to provide all that extra whitespace around them since the user can never select them for anything.  The default behavior of the ListBox provides a substantial amount of padding and I wanted to get rid of it.  Well …. you can’t do that sort of thing on the ListBox directly.  HOWEVER, you can do it to the items you add:

        خصوصی از درجه اعتبار ساقط AddGameStateLogMessage(رشته theMessage)
        {
            TextBox t = جدید TextBox();
            t.Text = GameStateCounter   + ": " + theMessage;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            ضخامت thisPadding از = جدید ضخامت(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem که = جدید ListBoxItem();
            li.Content = t;
            li.MaxHeight = 25;
            thisPadding = جدید ضخامت(5, 0, 5, 0);
            li.Padding = thisPadding;

            GameStateLog.Items.Insert(0,لی);
        }

in the above, I’m creating a TextBox and setting its font, its padding, غیره.

بعد, I create a ListBoxItem and set its content to the formatted TextBox.

سرانجام, I insert the ListBoxItem into the ListBox.  (I want to show most recent messages at the top of the list, hence the Insert(0,لی) instead of a simple Add() invocation.).

I will be tweaking this a bit before I’m really happy with the ListBox behavior but the pattern shown above has been very fruitful.  Hopefully someone else finds it helpful.

</پایان>

undefinedمشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin

دسترسی سریع و آسان: حرکت یک مستطیل با استفاده از C # در فروشگاه App ویندوز

My overall blog philosophy is that it’s perfectly fine to blog about old, settled subjects that have been covered to death elsewhere.  I assume this topic is one of those, but I’m blogging it anyway.

I’ve been working on a window store app and I’m at the part where I need to do some animating.  برای این منظور, 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.

At some point, 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

تنظیم ارتفاع ListboxItems ها در یک بدهیم برنامه نویسی برای ویندوز فروشگاه App

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. برای این منظور, من اضافه بدهیم به شرح زیر است:

<بدهیم *:نام ="GameStateLog" HorizontalAlignment ="مرکز" ارتفاع ="221" VerticalAlignment ="بالا" عرض ="499" بالشتک ="0" FontSize ="10">

 

کد C # به پر به ListBox در زمان اجرا در امتداد خطوط:

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);
            li.Padding = thisPadding;

            GameStateLog.Items.Insert(0,لی);
        }

 

Here I’m creating ListBoxItem’s and inserting them. من بالشتک اضافی با تنظیم ضخامت آن حذف.

این است که بسیار انعطاف پذیر است که من قصد به انجام برخی از برنامه نویسی به برجسته انواع خاصی از پیام ها و رنگ با مستقیما اضافه کردن ListBoxItems های من به سبک آنها را به هر راه که من می خواهم.

امیدواریم که این کمک می کند تا کسی!

</پایان>

undefinedمشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin